問題タブ [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.

0 投票する
4 に答える
2982 参照

sql-server - SQL サーバー | int/smallint/tinyint フィールドのビット演算

SQL SERVER の int/uint フィールドでビット演算を実行できるかどうか疑問に思っていましたか?

0 投票する
30 に答える
160380 参照

c - Cの整数の最上位ビット(msb)を見つけるための最速/最も効率的な方法は何ですか?

整数nがあり、最上位ビットの位置を知りたい場合(つまり、最下位ビットが右側にある場合は、左端のビットの位置である1を知りたい)、見つけるための最も速く/最も効率的な方法は何ですか?

POSIXが最初のセットビットを見つけるためにstrings.hのメソッドをサポートしていることは知っていffs()ますが、対応するメソッドがないようですfls()

私が見逃しているこれを行うための本当に明白な方法はありますか?

移植性のためにPOSIX関数を使用できない場合はどうでしょうか。

編集:32ビットアーキテクチャと64ビットアーキテクチャの両方で機能するソリューションについてはどうでしょうか(コードリストの多くは、32ビットintでのみ機能するようです)。

0 投票する
10 に答える
4205 参照

c++ - いくつかのランダムな C の質問 (ASCII マジックとビット演算子)

私は C プログラミングを学ぼうとしています。いくつかのソース コードを勉強していましたが、特にビット単位の演算子に関して、理解できないことがいくつかあります。これに関するいくつかのサイトを読んで、彼らが何をしているのかちょっとわかったのですが、戻ってこのコードを見てみると、なぜ、どこでどのように使用されているのか理解できませんでした.

私の最初の質問は、ビット単位の演算子ではなく、ASCII マジックに関するものです。

  1. 次のコードがどのように機能するかを誰かに説明してもらえますか?

    これはcharをintに変換するために行われることは理解していますが、その背後にあるロジックはわかりません。なぜ/どのように機能するのですか?

  2. さて、Bitwise演算子に関して、私はここで本当に迷っています。

    • このコードは何をしますか?

      ~ がビットを反転することをどこかで読みましたが、このステートメントが何をしているのか、なぜそれをしているのかわかりません。

      この行と同じ:

      /li>
    • その他の質問:

      |= 演算子は正確には何をしているのでしょうか? 私が読んだことから、 |= は OR ですが、このステートメントが何をしているのかよくわかりません。

      このビット単位の演算子を使用しないように、このコードをわかりやすく書き直す方法はありますか? 私はそれらを理解するのが非常に混乱していると思うので、うまくいけば、誰かがそれらがどのように機能するかを理解するための正しい方向に私を向けてくれます!


ビット演算子についての理解が深まり、コード全体がより理解できるようになりました。

最後に 1 つ: このコードを理解しやすく、おそらく「ビットレベル」ではない方法で書き直すための「よりクリーンな」方法があるかどうかについて、誰も答えなかったようです。何か案は?

0 投票する
14 に答える
46973 参照

java - 正の整数を 2 進数で表すのに必要なビット数を調べますか?

これはおそらくかなり基本的なことですが、1 時間ほどの苦痛を軽減するために、Java で特定の正の整数を表すのに必要なビット数を計算する方法を誰か教えていただけませんか?

たとえば、10 進数の 11 (1011) を取得します。私は答えを得る必要があります、4。

最上位ビット以外のビットをすべて 0 に設定する方法を考え出すことができれば、 >>> 答えが得られます。でも… できません。

0 投票する
6 に答える
2440 参照

c# - 範囲をビット配列に変換する

包括的な範囲を定義する 2 つの符号なし整数をビット フィールドに変換する必要がある C# で、タイム クリティカルなコードを作成しています。元:

ビットを逆の順序で視覚化すると役立つ場合があります

この範囲の最大値は、実行時に指定されるパラメータであり、これを と呼びますmax_valUInt32したがって、ビット フィールド変数は、次のサイズの配列として定義する必要がありますmax_val/32

変数x1とによって定義された範囲が与えられた場合、x2この変換を実行する最速の方法は何ですか?

0 投票する
7 に答える
460 参照

c++ - ビットをテストして文字列を作成する - より良いアプローチはありますか?

このコードは機能しますが、それを行うためのより良い方法があるかどうか疑問に思っています。基本的に、ビットをテストし、ビットの状態に応じて適切な文字を文字列に書き込む必要があります。文字が固定幅フォントで表示されるため、文字が動き回らないようにするため、スペースが存在します。C または C++ で問題ありません。

0 投票する
5 に答える
29275 参照

c# - ビットをバイトに変換するにはどうすればよいですか?

ビットを表す 128 個のブール値の配列があります。これらの 128 ビット表現を 16 バイトに変換するにはどうすればよいですか?

例:

次のような配列があります。

(より簡潔にするために 1 と 0 に変換されます)

これらのビットを次のバイト配列に変換する必要があります。

編集:これはうまくいかないようです:

以下を出力します。

0 投票する
7 に答える
29725 参照

c# - 左ビットシフト 255 (バイトとして)

以下がコンパイルされない理由を誰か説明できますか?

エラー:

定数値 '510' は 'byte' に変換できません

私はバイナリで次を期待しています:

型変換は私を困惑させました。

0 投票する
25 に答える
247652 参照

c - C でのビット反転 (MSB->LSB から LSB->MSB へ) の効率的なアルゴリズム

以下を達成するための最も効率的なアルゴリズムは何ですか?

0010 0000 => 0000 0100

変換は、MSB->LSB から LSB->MSB です。すべてのビットを逆にする必要があります。つまり、これはエンディアン スワッピングではありません。