問題タブ [bitwise-xor]
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.
algorithm - ビット演算に関する最近の Google インタビュー パズル
これは、Google からの最近のインタビューの質問です。
f(X, Y) を、X と Y の 2 進数表現で対応する異なるビットの数として定義します。たとえば、2 と 7 の 2 進数表現はそれぞれ 010 と 111 であるため、f(2, 7) = 2 です。1 番目と 3 番目のビットが異なるため、f(2, 7) = 2 です。
N 個の正の整数、A1、A2、…、AN の配列が与えられます。1 ≤ i、j ≤ N となるすべてのペア (i, j) の f(Ai, Aj) の合計を求めます
例えば:
A=[1, 3, 5]
我々は返します
f(1, 1) + f(1, 3) + f(1, 5) + f(3, 1) + f(3, 3) + f(3, 5) + f(5, 1) + f (5, 3) + f(5, 5) =
0 + 1 + 1 + 1 + 0 + 2 + 1 + 2 + 0 = 8
O(n ^ 2)であるこのソリューションを考えることができました
私が考えることができる別のアプローチは次のとおりです(各要素には2進数が1つしか含まれていないことを考慮して):
- 配列の最後から開始
- これまでに見つかった 1 と 0 の数を保持する
- 現在の要素が 1 の場合
count_of_zeros
、最終的な合計に寄与します。 - 配列の先頭に到達するまで、このように続けます。
このアプローチは正しいですか。
excel - Excel を使用してビットごとの XOR を 16 進数形式で計算する方法は?
ビットの文字列を持つ 2 つのセルがあります。
1747F6001E00DB2XXXXX28FE5257645C
と
1C6262C8DBF510F655XXXXXA3BDA58AC
結果が次のようになるように、2つをXORしたい 0B2594C8C5F5CXXXXX190014698D3CF0
。
ビット単位の XOR 計算機はオンラインで動作するため、Excel でビット単位の XOR 演算を使用する必要があることはわかっていますが、16 進数とバイナリの入力データを選択するオプションが与えられます。BITXOR は機能するはずですが、16 進数の入力では機能しません。
c++ - Finding two elements whose XOR is maximum
I am facing a problem that needs me to find an element from a given array of integers whose XOR is maximum with a given number.
Example :
A[] = {2,7,3,6}; Number = 4.
Now, 2^4 = 6 , 7^4 = 3 , 3^4 = 7, 6^3 = 2. Hence, 3 should be the answer as 3^7 is the maximum.
I'm trying to follow a trie like structure and keep on finding the maximum result possible bit by bit i.e. starting from MSB, if my bit is 1, then I traverse down the 0 side, and if my bit is 0, then I traverse down the 1 side of the node. I have come up with the following code.
But I'm keep on getting a segmentation fault and can't run the program. I have tried every trick to debug the code but I can't figure out the problem. Please help in finding the cause of runtime error.
Thanks
java - バイナリ リテラルを使用したビットごとの xor の動作
バイナリ リテラルを使用したビットごとの比較で実際に何が起こるか知りたいです。私はちょうど次のことに出くわしました:
したがって、すべてが期待どおりに動作し、xor
比較は等しいです0
。ただし、負の数で同じことをしようとすると、うまくいきません:
xor
最後の比較も等しいと予想していました0
。ただし、これは、バイナリリテラルを明示的にキャストした場合にのみ当てはまりbyte
ます。
xor
私にとっては、比較前は同じように見え、同じビット表現b1
を0b11111111
持っているので、それらがint
(または他の何かに)キャストされたとしても、xor
は 等しいはず0
です。どのようにして結果が-256
211111111 11111111 11111111 00000000
進表現になるのでしょうか? byte
を取得するために明示的なキャストを行う必要があるのはなぜ0
ですか?
algorithm - 特定の n に対して、1..n から数値の xor を取得する方法は? (例: 1^2^3^...^n)?
これは私が遭遇したインタビューの問題です。数値の XOR を繰り返して力ずくで解決する方法は知っていますが、これをより効率的に行う方法はわかりません。
キャリアカップでこのソリューションを見ました:
しかし、男の説明があっても、ここのロジックを正確に理解していません。誰かがこれを行う方法を説明してもらえますか?
java - 2 つの 16 進数が与えられた場合、それらがグレイ コードで連続しているかどうかを調べます
「グレーコードで連続」とはどういう意味ですか? 10 と 11 は 10 進法で連続しているということですが、「グレイコードで連続」とはどういう意味ですか? 私が知っているのは、グレイ コードが 2 つの連続する値が 1 ビットだけ異なる 2 進数システムであることだけです。
ここにオンラインの解決策がありますが、これを理解できません
1時間を費やして理解しようとしていますが、まだ手がかりがありません。
java - xor操作を正しく実行するには?
バイナリ文字列があり、その文字列のいくつかのビットに対して結果として xor 演算を実行したいと考えています。私の文字列は:
011001100011100000000011
次のコード行を使用して計算を実行しようとしています:
最終パリティの結果は 100000 です。正しい結果は 001001 です。
D29 と D30 は前の計算から引き継がれたパリティ ビットで、どちらも整数です。
私は何を間違っていますか、どうすれば修正できますか? おそらくビットごとの操作として行う必要がありますが、理解できないようです。任意の助けをいただければ幸いです。