問題タブ [bitwise-operators]
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.
c++ - std::stringのC++ビット演算子
私の質問は、C++でビット演算子を使用する方法についてですstd::string
。オーバーロードを介して、または機能としては重要ではありません。
動作するXOR/^
関数の例std::string
:
私が今欠けているのは、NOT / ~
、AND/&
プラスOR/の代わりです|
。C ++コードの例(最後の2行で使用したい... :-P):
PHP/Perlでは厄介なことができます:-Pこのようなこと
...そして私はそれが欠けています;-)。ただし、XORは機能します。AND / OR / NOTを取得するにはどうすればよいですか?
postgresql - Postgres でのビット マスキング
このクエリがあります
次のエラーが表示されます。
PGError: エラー: 演算子が存在しません: 文字が可変 & 整数
ヒント: 指定された名前と引数の型に一致する演算子はありません。明示的な型キャストを追加する必要がある場合があります。
models_mask は、データベース内の整数です。どうすればこれを修正できますか。
ありがとうございました!
c++ - C / C ++で64ビット値から32ビットワードを取得し、エンディアンを気にしない
C / C ++では、ビット単位の演算子はエンディアンに依存せず、期待どおりに動作するはずだと私は理解しています。マシンのエンディアンを気にせずに、64ビット値から本当に最も重要な単語と最も重要でない単語を取得していることを確認したいと思います。次に例を示します。
これは機能しますか?
c - C における数値の 2 進数表現
数値のバイナリ表現のためにこのコードに出くわしました。利用の必要性が知りたい!! コードで。
python - ビット演算を使用してn=2**xの指数を見つける[nの基数2の対数]
ビット演算のみを使用して2の累乗から指数を抽出する簡単な方法はありますか?
編集:質問はもともとビット演算に関するものでしたが、 「 PythonでY = 2 Xの場合にXを見つける最も速い方法は何ですか?」**
私は現在、フォームの偶数Nを減らすルーチン( Rabin-Miller素数性テスト)を最適化しようとしています。私は次の方法で部品を入手できます:2**s * d
2**s
しかし、ビット演算で「 s 」だけを抽出する方法が見つかりません。私が現在あまり満足せずにテストしている回避策(それらはすべてかなり遅いです)は次のとおりです。
- 対数関数を使用する
- 2 **のバイナリ表現を操作する(つまり、末尾のゼロを数える)
- 結果が1になるまで2で除算をループします
私はPythonを使用していますが、この質問に対する答えは言語に依存しないはずです。
c++ - より読みやすい方法と比較した、C++ でのビット単位の XOR の効率
私は最近、効率が非常に重要な研究プロジェクトのコードを書いています。私は、私が行っている通常の方法のいくつかをスクレイピングし、代わりにビット単位の XOR を使用することを検討しています。私が疑問に思っているのは、これが違いを生むかどうか (この操作を数百万回実行している場合)、または g++ で 03 を使用した後も同じかどうかです。
頭に浮かぶ2つの例:
(私は純粋に正の整数を使用しています) n が奇数の場合は n を n-1 に、n が偶数の場合は n を (n+1) に変更する必要がありました。私はいくつかのオプションがあると考えました:
また
ついに:
すべての方法は明らかに同じことを行いますが、3 番目の方法が最も効率的であると感じました。
次の例は、より一般的な注意事項です。2 つの正の整数を比較しているとします。これらの 1 つが他のものよりも優れたパフォーマンスを発揮します。または、この操作を数百万回実行しても、違いは本当に目立たないでしょうか。
コンパイラは、これらすべてのインスタンスで同じ操作を実行しますか? ビット単位の操作を使用し、コンパイラが私のために作業を行うことを信頼しないインスタンスがあるかどうか、私はただ興味があります。
修正済み:問題の正しい記述。
c++ - int/bool の配列として int を使用する方法は?
int
プログラムを作成しているときに、多くの型変数が 10 を超えないことに気付きました。anint
は最短で 2 バイト ( カウントする場合は 1 char
) であるため、最大値 15 の 4 を short int に格納できるはずであり、 and を使用しunsigned ints
てそれぞれに個別にアクセスできることがわかっています。>>
<<
ただし、これをクラスの関数に含める方法がわかりません。関数の型は type でGetVal()
なければならず、int
そもそもビットを分離するという目的が無効になるからです。
c# - C#: ビットごとの Enum で最小値のキーを取得する
私はこのような列挙型を持っています
私は次のものを持っています
最小値を持つ k1 のキーを取得したい。どうやってやるの?
例:
algorithm - ビット単位のいじりのアルゴリズム
32ビットの2進数を持っていて、その2進数の下位16ビットを自分が持っている16ビットの数値に置き換え、その数値の上位16ビットを保持して新しい2進数を生成したい場合。単純なビット単位の演算子を使用してこれを行うにはどうすればよいですか?
たとえば、32ビットの2進数は次のとおりです。
そして私が持っている下位16ビットは次のとおりです。
したがって、結果は次のようになります。
これどうやってするの?
c++ - C / C ++:動的に割り当てられたメモリのビット演算子
C / C ++では、動的に割り当てられたメモリにビット演算子(特に左/右シフト)を適用する簡単な方法はありますか?
たとえば、私がこれを行ったとしましょう:
これを行う方法が欲しいのですが:
(この場合、「バイト」の値は次のようになります):
値をそのようにする必要がある理由:
割り当て後、バイトは次のようになります。
しかし、私はバイトを次のように1つの長いビット文字列として扱いたいと考えています。
2つ右にシフトすると、ビットは次のようになります。
これは、3バイト(つまり、0、64、64)に分割すると、最終的に次のようになります。
何か案は?構造体/クラスを作成して適切な演算子をオーバーロードする必要がありますか?編集:もしそうなら、どのように進めるかについてのヒントはありますか?注:私はこれを(ある程度のガイダンスとともに)学習体験として自分で実装する方法を探しています。