問題タブ [bitwise-and]

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 投票する
1 に答える
2365 参照

c - キャッシュ内のビット マスキング

CI では、4 セットのダイレクト マップ キャッシュで整数アドレス値をタグ ビットとセット インデックス ビットに分離しようとしています。これを行うのは、キャッシュの正しいセットの行で正しいタグを比較できるようにするためです。たとえば、アドレスパラメータは次のとおりです。

  • セットインデックスビット数 s=2
  • オフセットビット数 b=3
  • アドレスビットの総数 m=8

私の例では、アドレス整数は 40 -- int address = 40 です。

  • 2 進数で 40 は 00101000 です
  • セットインデックスは 01 = 1 である必要があります
  • タグは 001 = 1 である必要があります

タグの代わりに 2 を取得しています。セット インデックスは 8 です。これは、キャッシュに 4 セットしかないため、間違っている必要があります。

これが私がやっている方法です。タグを取得するためにアドレスをビットマスキングしています。これは、m = 8ビットまでのセットインデックスの左側のビットです。セット インデックスは、8 ビット シーケンスの中央にある 01 であるタグ ビットとオフセット ビットの間にあります。

  • int タグ = ((アドレス & ~0 << (s + b)) >> 4)
  • int set = (アドレス & (~(~0 << s) << b))

自分が間違っているに違いないことはわかっていますが、マスクを書こうとすればするほど混乱し、何かを忘れているに違いありません。左のビットは中央のビットを取得するよりも簡単なはずなので、少なくともタグを正しく取得していると思いました。アドバイスやヘルプをいただければ幸いです。どうもありがとうございました。

0 投票する
1 に答える
43 参照

mysql - データをビットごとに保存すると、検索結果が速くなりますか

私の tinyint フィールドには 6 つの可能なオプションがあり、ユーザーは検索ごとに受け入れ可能なオプションを選択します。現在、各オプションを単純に 0 ~ 6 の値として保存し、受け入れ可能なオプションごとに WHERE で個別の句を実行しています。例 (ユーザーが選択したオプション 0、3、および 4):

データを 1、2、4、8、16、および 32 として格納した場合に高速になるかどうかを知りたくて、ビットごとの検索を実行しました。

最初のオプションは通常、インデックスを作成して高速化できると思いますが、このテーブルは実際には 43 のフィールドであり、そのうち 33 はさまざまな操作を含めて検索可能です。(多くの場合、クエリは終了するまでに多くの AND を持っています。) 多くのフィールドにインデックスを付ける必要があるだけでなく、インデックスを作成する利点が無効になるのではないでしょうか?

0 投票する
1 に答える
84 参照

arrays - この例で、ビット演算子 & は何をしますか?

この例は MQL4 からのものですが、それは実際には問題ではありません:

重要なのは、ここでビットごとの演算子が何&を言っているのか理解できないということです。

2 つの変数があり、それを使用するとどうなるかはわかっていますvar1 && var2が、この状況で配列を使用している場合、誰かが私を助けてくれませんか?

0 投票する
1 に答える
231 参照

java - 整数間でビットごとの AND 演算子を使用する利点は?

私は次のようなコードを見ていました:

このメソッドは、パスに基づいて呼び出される呼び出し元を返します。maxCallers値が 4 の場合、呼び出し元の値は 0 から 3 の間である必要があります。ここで、doing の使用法がわかりませんhash & Integer.MAX_VALUE。私が考えることができる1つの理由は、ハッシュコードが負になる可能性があるため、プログラマーが正の数を望んでいるということですが、私の理解はここで間違っていると思います. ここでビットごとの AND 演算子の使用について説明してください。

0 投票する
1 に答える
231 参照

c++ - C++ での & と % の速度の比較

C++コマンドでそれは本当ですか

n&1

よりも高速で、メモリ使用量が少ない

n % 2?

(n は int 型)

よりグローバルに、% 演算子を使用するよりも速く 2 を法とする整数の剰余を見つける方法はありますか? 前もって感謝します。