問題タブ [bit-manipulation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
3777 参照

iphone - Bonjour Networking ヘルプの iPhone WiTap サンプル

私は Apple の WiTap サンプルのほとんどをたどることができますが、send メソッドのこのビットにはちょっと困惑しています:

send: 引数を、1 ~ 9 の番号が付けられたビューのタグだけに変更したことに注意してください。元々、コードにはビット単位の AND および OR 調整がありました。

なぜ?

send メソッドには が必要であるという事実がuint8_tわかりましたが、それがビット単位のものがある理由ですか? NSInteger を unint8_t に変換するには?

上記の変更でコードが機能しません。正常にログに記録され、視覚的にクライアントは正しく機能しますが、メッセージはクライアントからクライアントへ正しく送受信されていません。

誰かがビット単位のものが何をしているのかを短い言葉で説明できますか? それとも私は正しいですか?

ありがとう!これはSOへの私の最初の質問ですので、親切にしてください.


返信ありがとうございます。私はまだ少し困惑しています。それを得る?

基本的に、なぜですか?

これは、識別子を渡すためのマニアックな方法ですか? これらの各ビューにはタグ # があります。それを渡して、ビュー クラスから状態 (上/下) を切り替えてみませんか?

これは、「これを書いた人がこのようにした」という単なるケースですか、それとも、これがコードを構造化する方法でもあるという点で、パズルの重要なピースが欠けているのですか。

タグ # を渡したいだけで、そのタグに、明確に読みやすい関数などで何をするかを決定させますtoggleUpOrDownState

このビットごとのものは、必要でない限り、私はいつも私を愚かに感じさせます. : )

0 投票する
5 に答える
40808 参照

c - C のビット マスク

m設定ビットの前にk未設定ビットがあり、その後にn未設定ビットが続くビットマスクをCで構築する最良の方法は何ですか?

たとえば、k=1、m=4、n=3 の場合、ビット マスクは次のようになります。

0 投票する
5 に答える
23074 参照

c# - チェックボックスをフラグ列挙の個々のビットに双方向にバインドするにはどうすればよいですか?

優れた WPF バインディング チャレンジが好きな人向け:

フラグ列挙の個々のビットに a をバインドするほぼ機能的な例があります (元の MSDN 投稿のCheckBoxIan Oakes に感謝します)。ただし問題は、バインドが一方向 (UI から へ、その逆ではない) であるかのように動作することです。したがって、事実上は初期化されませんが、切り替えられた場合、データ ソースは正しく更新されます。Attached は、ビットベースのバインディングを有効にするためにいくつかの添付依存関係プロパティを定義するクラスです。私が気付いたのは、強制的に変更しても、ValueChanged が呼び出されないことです。DataContextCheckBoxDataContext

私が試したこと:プロパティ定義の順序を変更する, ラベルとテキスト ボックスを使用しDataContextて が更新をバブルしていることを確認する, もっともらしいFrameworkMetadataPropertyOptions( AffectsRender, BindsTwoWayByDefault), 明示的に設定するBinding Mode=TwoWay, 壁に頭をぶつける, 競合の場合に変更ValuePropertyする.EnumValueProperty

提案やアイデアは非常に高く評価されます。あなたが提供できるものに感謝します!

列挙:

XAML の使用法:

クラス:

0 投票する
2 に答える
2597 参照

sql-server - ビット フラグを変更するためのストアド プロシージャは、多くのアプリがそれを変更するため、Enum を使用できません。どうすればよいですか?

INT (SQL サーバー) 型のデータベースに列があります。

この int 値はビット フラグで使用されるため、AND と OR を使用します。

パラメータを sproc に渡す必要があり、そのパラメータは特定のフラグ項目を表します。

私は通常、列挙型を使用して int 表現を sproc に渡しますが、多くの異なるモジュールがそれにアクセスするため、それらすべてが私の列挙型定義を持つことは実用的ではありません (変更された場合、それは頭痛の種になります)ロールアウトします)。

したがって、「文字列」またはマジックナンバーをパラメーター値として使用する必要がある場合は、sproc で次のようにします。

0 投票する
2 に答える
393 参照

floating-point - 80 ビット IEEE 浮動小数点の等価性テストを行うにはどうすればよいですか?

関連:

ただし、x86 での80 ビット IEEE 浮動小数点(セクション 8.2 を参照) に関しては

特に、デフォルトでスケーリングされるため、オペランド間の表現可能な値の数を使用するこの実装が気に入っています。

1 つのユース ケースは、2 つの値が互いに近づく数値近似であり、それらが十分に近いかどうかを確認する必要があります。


ps 実装言語はDになりますが、翻訳できます。また、基になる型が何であれ自動的に処理できる実装 (たとえば、64 ビット実数しか利用できない場合) が理想的です。

現在使用中のコード:

0 投票する
6 に答える
15051 参照

mysql - MySQL のビット操作、ブルーム フィルター

MySQL を使用してブルーム フィルターを実装したいと思います (その他の代替案)。

問題は次のとおりです。

次の値を持つ 8 ビット整数を格納するテーブルがあるとします。

これにビットごとの AND であるすべての結果を見つけたいと思います:

結果は行 1 と 5 になります。

ただし、私の問題では、それらは 8 ビット整数ではなく、n ビット整数です。これをどのように保存し、どのように照会しますか? スピードが鍵です。

0 投票する
4 に答える
6023 参照

language-agnostic - +-* /を使用してXORをどのように実装しますか?

基本的な算術演算のみを使用して、XOR演算(2つの32ビット整数)をどのように実装できますか?2の累乗ごとに順番に除算した後、ビット単位で実行する必要がありますか、それともショートカットがありますか?実行速度は、最も単純で最短のコードほど重要ではありません。

編集: これは宿題ではありませんが、hacker.orgに提起されたなぞなぞです。重要なのは、操作が非常に制限されたスタックベースの仮想マシンにXORを実装することです(brainfuck言語に似ており、シフトやmodはありません)。そのVMを使用することは難しい部分ですが、もちろん、短くて単純なアルゴリズムによって簡単になります。

FryGuyのソリューションは巧妙ですが、その環境でも比較を使用するのは難しいため、元の理想(litbのソリューションと同様)を使用する必要があります。

0 投票する
3 に答える
1744 参照

c# - BitConverter がバイトを返すのはなぜですか?どうすればビットを取得できますか?

入力として int を取得します (実際には、int に変換する必要がある文字列です)。
この int はビットに変換する必要があります。
1 のビット位置ごとに、位置を取得する必要があります。
私のデータベースでは、この位置を値として持つ int 値フィールドを持つすべてのレコードが必要です。
私は現在、エンティティ(databaseValueを保持している)に位置と一致するかどうかを尋ねる必要がある次の単純なコードを持っていますが、明らかに正しく機能しません:

まず、明らかにビット型がないため、バイトの配列があります。Boolean[] を使用する必要がありますか? では、どうすればこの配列を埋めることができますか? 最後に、前のステートメントが解決された場合は、bits[position] を返すだけです。

これはどういうわけかビットマスクで解決する必要があるように感じますが、どこから始めればよいかわかりません..

どんな助けでもいただければ幸いです

0 投票する
9 に答える
23840 参照

python - Python: ビット数の設定 (popcount)

UTL_RAW.BIT_XOR を使用して BLOB に対して XOR 操作を実行した場合、私のデータベース (Oracle 11g) ではいくつかの BLOB が複製されています。その後、バイナリ文字列の設定ビット数をカウントしたいので、上記のコードを書きました。

小さな実験中に、生成された 16 進値と整数値が何であるかを知りたくて、この手順を書きました..

出力: 16 進数値:

16 進コードと生成された整数値の間に差異があったため、次の python コードを使用して実際の整数値を確認しました。

答え:

セット ビット カウントを取得するために、C で次のコードを記述しました。

Pythonで同じコードを試したところ、うまくいきませんでした。私は実験中の好奇心でPythonを初めて使用しています。間違っている場合はすみません。

最後の行でエラーが発生しました。これを解決し、Python でロジックを実装するのに助けが必要です :-)

私が見た後、Pythonでセットビットバージョンをチェックアウトすることに興味がありました!

関連する質問: 32 ビット整数の設定ビット数をカウントする最適なアルゴリズムは?