問題タブ [bit-manipulation]
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.
language-agnostic - XOR 変数のスワッピングはどのように機能しますか?
一時変数のない 2 つの変数の XOR スワッピングがどのように機能するかを誰かに説明してもらえますか?
私はそれが何をするのか理解していますが、誰かがそれがどのように機能するかのロジックを説明してもらえますか?
c++ - C++ で 2 つの unsigned char を追加するビット演算子
16 進数のものが 2 つある場合、バイナリを一緒に追加して値を取得する方法はありますか?
C ++では、私が持っているとしましょう
私が欲しいのはどういうわけかです
1100001010100011
、これはビット単位の演算子を使用して可能ですか?
t と q のバイナリ形式を抽出して追加したい...
binary - 符号付き数値からビットフィールドを抽出する
32 ビット整数で格納された符号付き数値 (2 の補数) があり、それらから 16 ビット フィールドを抽出したいと考えています。32 ビットの符号付き数値から下位 16 ビットを抽出すると、元の (32 ビット) 数値が 16 ビットに収まる限り、結果は正しいというのは本当ですか?
正の数については自明ですが、負の数についても同様です。しかし、それは証明できますか?
前もって感謝します
algorithm - カウント、反転ビットパターン
0 から 2 n -1 までカウントするアルゴリズムを見つけようとしていますが、ビット パターンが逆になっています。単語の n LSB だけを気にします。ご想像のとおり、私は失敗しました。
n=3 の場合:
あなたはアイデアを得る。
疑似コードでの回答は素晴らしいです。任意の言語のコード フラグメントを歓迎します。ビット操作のない回答が優先されます。
簡単な説明やソースへのポインタさえもなしに断片を投稿しないでください。
編集:追加するのを忘れていました。カウント変数をビット反転する単純な実装が既にあります。ある意味で、この方法は実際にはカウントされていません。
apache-flex - ActionScript/Flex: 32 ビットのビットごとの AND/OR
質問: ActionScript で 32 ビットより大きい数値に対してビットごとの AND または OR を実行する簡単な方法 (ライブラリ関数) はありますか?
ドキュメントから:「ビット単位の演算子は、内部的に浮動小数点数を操作して 32 ビット整数に変更します。実行される正確な操作は演算子によって異なりますが、すべてのビット単位の操作は、32 ビット整数の各 2 進数 (ビット) を個別に評価して、新しい値を計算します。」
残念...
& または | を使用できません。ops - AS は Numbers に対してこれを行うライブラリ関数を公開していますか?
仕様: 私は多くの Java を flex に移植しており、Java は多くの「長い」マスクを保持しています。フレックス側で Java マスクを 2 つの int に分割できることはわかっています。私のマスク マニピュレーションはすべてローカライズされているので、これはそれほど苦痛ではありません。ただし、ポートはできるだけ 1 対 1 のままにしておきたいと思います。
助言がありますか?ありがとう!
bit-manipulation - Web 開発中に Bitwise Operators を使用するのはいつですか?
私はビット単位演算子の概念を理解していますが、Web 開発プロセス中にビット単位演算子を使用しなければならない多くのユース ケースに遭遇したとは言えません。
- ビット演算子を使用していますか?
- なぜそれらを使用するのですか?
- ユースケースの例を教えてください。
この質問は、Web 言語でのビット演算子の使用を特に意図していることを覚えておいてください。
c++ - 文字配列をビットストリームとして扱うC/C++コード
char []配列に大量のバイナリデータがあり、パックされた6ビット値の配列として解釈する必要があります。
私は座ってこれを行うためのコードを書くことができましたが、誰かがすでに書いた優れた現存するクラスまたは関数がなければならないと思っています。
私が必要としているのは次のようなものです。
したがって、次のように呼び出すことで、データの7番目の6ビット文字を取得できます。
c - 単一ビットを設定、クリア、およびテストするアルゴリズムの説明
ねえ、プログラミング パールの本には、実際にはセット表現である int の配列で指定されたインデックスのビットを設定、クリア、およびテストするためのソース コードがあります。
コードは次のとおりです。
SHIFT と MASK が定義する理由を誰か説明してもらえますか? そして、コードでのそれらの目的は何ですか?
以前の関連する質問を読みました。
c - この共用体のサイズがビットフィールドで 2 であるのはなぜですか?
私は、char が 1 バイトを取るウィンドウでターボ C に取り組んでいます。今、私の問題は以下のユニオンにあります。
このプログラムは出力を 2 として出力していますが、ユニオンは 1 バイトしかとらないはずです。なぜそうなのですか?
構造体の場合、1バイトを指定しても問題ありませんが、この共用体は不適切に機能しています。
そして、これらのビット フィールドにアクセスする方法がもう 1 つあります。
ビットのアドレスを取得できないため、機能していません。したがって、以下のような別の変数を使用する必要があります
避けられないの??他に方法はありますか???
assembly - 1 ARM 命令で上位 16 ビットをクリアする
ARM アセンブリでは、即値は 8 ビットのローテーションされた値によってエンコードされます。つまり、エンコードできるのは
今私の問題は、r0 の上位 16 ビットをクリアし、それを格納されたハーフワード r1 に置き換えたいということです。しかし、私がしなければならない即時の範囲が限られているため: -
2 つの bic 命令を 1 つの命令に置き換えることは可能ですか? 0xffff0000 はエンコードできません。おそらく、別の論理演算を使用して上位 16 ビットをクリアする必要がありますか?
ありがとう
編集:申し訳ありませんが、r1 の上位 16 ビットが空であることを忘れていました。ARM7TDMI を使用しています。