問題タブ [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.
algorithm - 最大 AND 値とのペア
要素が最大10 ^ 9になる非常に大きな整数の配列が与えられた場合、最大のAND値を持つペアを見つけるにはどうすればよいですか。私の現在のアプローチは、可能なすべてのペアを計算し、それをトラバースして最大値を見つけることですが、非常に遅いです。他のアプローチはありますか?
assembly - テスト $1,%al はアセンブリで何をしますか?
したがって、%eax = x には値があります。
私は行を持っています:
だから私はそれが 1&%al を実行していることを知っており、等しい場合はジャンプします。私の質問は、%eax が x の場合に %al とは何かということです (%al が最下位バイトであることはわかっています。x に関してそれが何であるかを知りたいのです)。そして、それが1に等しいとはどういう意味ですか??
c# - ビット演算のパフォーマンス、改善方法
簡単なタスクがあります。ある数値 (バイト配列の長さ) をバイト配列にエンコードし、最終的な値をエンコードするために必要なバイト数を決定します (この記事の実装: Encoded Length and Value Bytes )。
もともと私はタスクを達成する簡単な方法を書きました:
これは古いコードで、ひどい方法で書かれています。
BitConverter
現在、ビットごとの演算子またはクラスのいずれかを使用してコードを最適化しようとしています。以下は、ビットごとのエディションの例です。
クラスを使用した最終的な実装BitConverter
:
すべてのメソッドは期待どおりに機能します。ストップウォッチ クラスページの例を使用して、パフォーマンスを測定しました。そしてパフォーマンステストは私を驚かせました。私のテスト メソッドは、100,000 要素のバイト配列 (実際には配列 sixe のみ) をエンコードするメソッドを 1000 回実行し、平均時間は次のとおりです。
- エンコード -- 約 200ms
- Encode2 -- 約 270ms
- Encode3 -- 約 320ms
個人的には methodの方Encode2
がコードが読みやすいので気に入っていますが、パフォーマンスはあまり良くありません。
Encode2
質問:メソッドのパフォーマンスを改善するため、または読みやすさを改善するために何を提案しますEncode
か?
どんな助けでも大歓迎です。
===========================
更新: このスレッドに参加してくれたすべての人に感謝します。私はすべての提案を考慮に入れ、この解決策に行き着きました:
最終的に、リストから固定サイズのバイト配列に移行しました。同じデータセットに対する平均時間は、現在約 65 ミリ秒です。リスト (ビット演算ではない) を使用すると、パフォーマンスが大幅に低下するようです。
vb.net - 定数を持つ大きなULong数のビットごとのAND演算子がOverflowExceptionを引き起こすのはなぜですか?
このコードは正常にコンパイルされますが、実行中に Visual Studio 2013 で System.OverflowException が発生します。
なぜこれが起こるのか説明できますか?また、変数の値が小さい場合 (例: 5)、例外は発生しません。
PS 変数の最上位 3 ビットはすべてゼロです。
c# - Bitwise 操作の結果を検索する最も効率的な方法
列挙型と列挙型からの値のリストを使用し、ビット単位を使用して列挙型から値のリストの整数を取得する別の言語のコードがあります。
したがって、リストに HELLO と SO がある場合、値が返されます
この整数を取得し、含まれている列挙型のリストを返す最も効率的な方法を見つけようとしています。
php - ビット単位および PHP
私はPHPの初心者です。PHPでdechex(255)
対応する16進値が得られることを読みました。ff
の 16 進値が必要です-105
。試しdechex(-105)
てみたところ、 のような結果が得られましたffffff97
。しかし、私はただ97
ある種のことをしたいだけです。
0xff
Java では、 を使った少し賢明な操作でという結果97
が得られたことを知っています(byte)-105 & (byte)0xff = 0x97
。
私が Java で行ったのと同じように、PHP で解決策を見つけてください。
php - ビットごとの AND 演算子が期待どおりに機能しない
データベースでの上書きを処理するためにバイナリコードを使用していますが、ルールが一致しているかどうかを調べる必要があります。ルールに従っています。
- 1 = タイトルのロックを解除
- 2 = デスクのロック解除
- 4 = アンロック価格
- 8 = ストックのロック解除
PHPを使用するときは、MySQLの試合のように使用しようとします:
タイトルと価格がロック解除され、説明と在庫がロックされていることを期待していますが、何かがうまくいかず、PHP は MySQL のようなバイナリを受け入れません。ルール。
c - C 式における剰余演算とビットごとの AND の間のリンク
ビットごとのロジックを使用して気の利いたモジュラー算術演算を実行する C スニペットに出くわしました。
c の値は、a+b より大きい b の最小倍数です (John Bollinger の回答に応じて編集)。私はこれがどのように機能するかを自分自身に説明しようとしています (剰余算術と & 演算がどのように関連している可能性があるかについてはほとんど理解していません) が、洞察が不足しています。一方、私はそれを次のように表現できるようです
この表現はわかりやすい。しかもモジュラーの登場とは?操作は、個々の部分をビットごとのロジックとして表現し、何らかの方法で上部の式に還元できることを示唆しています。しかし、どのように?誰かが試してみたい場合は、演習として残します (これは宿題ではありません)。実装は C である必要はありません。これを説明するオンライン参照がある場合は、それを提供しても構いませんが、完全な回答にはなりません。下から上の表現への移行を明確なステップで見たいです...
コメント このリンクは、b が 2の累乗である場合に適用される可能性があることを示唆しています。
式で、を に置き換えることができると仮定します。ここで、は表現...&(-b)
で可能な int の総数です。 (-b)
(nums(int)-b)
nums(int)
好みのコンパイラ/C バージョンを自由に指定してください。
サンプルコード:
出力例: