問題タブ [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 に答える
872 参照

java - 配列内の組み合わせのすべての可能な合計を取得するためのビットごとの条件チェックを理解する

Integer の配列内のすべての組み合わせのすべての可能な合計を与えることを目的とするアルゴリズムを取得しました。

ビットごとの AND で追加された内部の if 条件が理解できません。内部ifループの目的は何ですか。

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

c++ - ここで正確に何が起こりますか?

これは、char、c を取り、それがバイナリーであることを出力します。ただし、これはどのように機能しますか、具体的には2行目です。

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

c++ - C++: Assigning the result of bitwise AND to a bool

I have the following loop in C++, compiled with g++ 4.1.2:

Note logStatus() receives its parameters by value, so the parameter is not modified. m_firstOk and m_secondOk are of course bool member attributes.

This was working fine until now. I received a report that it didn't detect when firstOk changed. I attached to the running process with gdb. It was in the sleep() line and I got astonished when I saw the following:

WTF? How can firstOk be 244 when it should be the result of a bitwise AND with 0x1? I know a boolean is in fact stored as an integer, but how could my bitwise AND be ignored? Since it's 244, it's being evaluated as true when it should be false, which is the cause of the problem.

Isn't assigning the result of a bitwise AND to a boolean safe? Is this a gcc bug? Or should I do something like the following?

Thanks in advance.

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

bit-manipulation - (ビット単位の論理)0x7Fで何かをANDすることは何を達成しますか?

分解したプログラムを理解しようとしています。私は今のところそれを理解しています。

ただし、プログラムが0x7Fの整数をAND演算している理由がわかりません。また、0xFFの整数をANDするのも好きです。このプログラムは、いくぶん乱数ジェネレーターです。

これは何を達成しますか?

0xFFでANDを実行すると、(レジスタの)下位バイトが取得され、残りは破棄されると思いますか?

特にMIPSASMでは:

0 投票する
8 に答える
7901 参照

c++ - 正数と負数のビットごとの and(&) の意味は?

誰が何n&-nを意味するのか助けることができますか?? そして、その意義とは。

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

javascript - ビット単位 & JavaScript で期待される結果が返されない

私はJavaScriptでBitWise AND演算子に取り組んでいます。

私は2つの32ビット番号を持っています

私と彼らがビットごと 4294901760 & 4294967040に結果として -65536 を得たとき、結果は4294901760.

何か足りないものがありますか?または、それを行う正しい方法は何ですか。ありがとう

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

c - 異なる幅のデータ型でのビットシフト演算子の安全性

ビット演算子は私の得意分野ではありません。ビットシフトを使用するときに明示的なキャストがいつ必要なのか疑問に思っています。

たとえば、 が符号なし整数型 ( など) である場合は常に true であることが保証されi&1 == i%2ていますか? 問題は、 inが暗黙的に width 型にキャストされているかどうかだと思います。icharunsigneduint64_t1i&1sizeof(i)

2 番目の例として、a を実行する場合、最初に、シフトされた結果を格納するのに十分な幅のデータ型にi = 1<<myshift明示的にキャストする必要がありますか?1i = (uint64_t)1<<myshift

myshift署名されていない限り、2 番目の例の型は無関係ですか?


これらに対する答えは、イエス、イエス、そしてイエスだと思います。特に 2 番目の例はすぐに確認できます。しかし、誰かがこのことについての良い参照を持っていますか? C標準へのリンク/引用は非常に役立ちます。

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

c# - C# での遅い ulong ビットごとの AND

チェス プログラムを最適化しようとしています。ulong非常に速いと思ったので、合法的な動きを生成するためにビットボードを使用しています。ただし、Profiler は、多くの時間がビットごとの AND 演算に費やされていることを示唆しています (以下に示すように、包含サンプルの 20% 以上。分析は複数回実行され、同じ結果が得られました)。

プロファイリングされたコードは x64 に最適化され、VMWare Player (Windows 7 ゲスト、Debian ホスト) で実行されました。Mono Profiler を動作させて同じ結果が得られるかどうかを確認することはできませんでしたが、Linux 上でネイティブに実行された Mono は、VMWare 上の .Net フレームワークとまったく同じ時間にコードを実行しました。

以下に示されているレポートは正しい可能性がありますが、操作は実際にそれほど重いので、解釈を誤解していますか、それともプロファイラーが不正確ですか?

プロファイリングの結果