問題タブ [bitwise-or]

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 に答える
7363 参照

python - ビット単位の操作のためにPythonでユーザーからバイナリ入力を取得する

コードは初期入力をバイナリに変換してから、ビット単位の or を適用します。ただし、バイナリ自体で初期入力を受け取る方法が必要です。

入力が

与えられた出力は 7 です。必要な出力は111|101which is111です。

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

sqlite - SQLite: OR と |

次のクエリは SQL Server では機能しますが、SQLite 3.8.7 では機能しません。その理由を知りたいです。

テーブル

クエリ

期待される出力

しかし、私は得た

そして、表現の順番を入れ替えると

私は得た

これは | を使用して解決されました。ORの代わりに、なぜORがうまくいかなかったのだろうか?

SQLFiddle http://sqlfiddle.com/#!7/15859/22/1の例を次に示します。

ありがとう

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

c - 条件文のビット演算子

if元のビットを変更せずに演算子に基づいてステートメントを入力しようとしてbit-wiseいますが、なぜ機能しないのか混乱しています。

ビット 7、4、2 の少なくとも 1 つが 0かどうかを確認しています。

作業コード:(元のビットを変更しますが、これは望ましくありません)

ビット7、4、または 2 を 0 にNO変更すると、(本来あるべきように) 印刷され、印刷されます。YES

動かないコード:

2 つのコードが同一だと思うので、かなり困惑しています。ありがとう!

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

c++ - C++ での 64 ビット整数のビット単位 (ビットシフト) 演算

ビットボードを処理しようとしています。これには、64 ビットの符号なし整数で特定のビットを設定する必要があります。ビットiを設定するには、左にシフトされた数値を使用して、問題のビットボードでビットごとの OR を実行します。

ビット 0 からビット 31 までは問題なく動作しますが、ビット 32 から 63 までは動作しません。右辺の評価がたまたま 32 ビット整数になっているためだと思われます。したがって、一時変数を試しました。

おそらく、右辺がまだ 32 ビット整数として評価されているか、それとも私が理解できない他の問題であると考えられます。整数を出力するには、std::bitset<64> を使用しています。例えば:

予想される 10 進値: 576460752303423496

実際: 8

ビット値:000000000000000000000000000000000000000000000000000000001000

明らかに、キングのみ |= 1 << 3; 正しく動作しました。

要約すると、ビット 32 から 63 の問題は何ですか?また、どうすれば回避できますか?

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

c# - ビットごとまたは結合された整数から値を削除しますか?

Bitwise Or 演算子を使用すると、整数 (2 の累乗の整数など) を互いに結合し、返された int に指定された値が含まれているかどうかを後で確認できます。しかし、新しい整数を組み合わせずに、返された整数から値を削除する適切な方法はありますか?

現在、結合された整数から削除したい値を減算していますが、これはうまく機能しますか、それとも問題を引き起こす可能性がありますか? それとも、それを行うための「適切な」方法はありますか?

これが私のコードです:

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

c# - コンパイラの警告 (レベル 3) CS0675 を取り除くために、C# の Bitwise-OR 演算子の使用を適切にリファクタリングする方法

次のコードをリファクタリングする必要があるため、コンパイラの警告は生成されません。

コンパイラの警告レベルが 3 以上に設定されている場合、次のエラーが発生します。

これはキャストによって修正できることは理解していますが、ビットごとの演算子の経験がある人が正しいことを確認してくれることを感謝します。

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

system-verilog - System Verilog のビット削減単項演算子

システム Verilog のバスまたは信号のビット削減に制限はありますか?

下のノードで少なくとも「1」を検出したいのですが、「OR」演算子を使用していますが、場合によっては正しく機能しません。これは、シミュレーションで見られる動作です。

OR 単項ビット削減演算子は 41 ビットに制限されていますか? 42 ビット以上のバス/ノードを縮小できないということですか?

前もって感謝します

これはコードです:

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

java - catch (NullPointerException | NumberFormatException e) のような " | " 演算子の特殊な使用法

このアイデアは、次のようにcatch句に複数の例外を追加する可能性を示したEclipse(Java)のために思いつきました。

つまり、私はそのようなこともできるということですか?:

または、このようなオブジェクトをキャストしますか?:

または、常に次のようにオブジェクトを指定しますか?:

答えてくれてありがとう、アイレン

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

c - C または '|' オペレーター

他の誰かが作成したこの形式のステートメントが C プログラムに int variable |= functioncall(parameter); あります。OR '|' の使用法がわかりません。その声明に署名します。代入演算子で何をするのか説明してください。私はビットごとのORを推測してから割り当てています。

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

c - ポインターを使用して値を変更する

次のようなプログラムがあります。

変数 p が宣言されていないことがわかります。私の質問は、TEST が 0x3f になるように変数 p をどうするかです。

私はすでにこれを試しました:

TEST の値をポインター p で変更できるようになりましたが、動作しないようです*((int*) (p + 8)) |= 0x3f;