問題タブ [bitset]
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++ - ビットセット バイナリ AND 演算
次の行を書きました。
出力は次のようになると予想していました。
しかし、ループは「0000」を出力するだけです。欠けている基本的な概念は何ですか?
c++ - すべてのビットへの加算とアクセスを実装するビットセット
ビットセット(のような)構造を追加する方法を探しているので、この質問はこれに関連しています。少なくとも 2400 ビットを格納でき、それらすべてに (ランダムに) アクセスできるビットセットのようなものが必要です。クラスが持たなければならない 2 番目の重要な能力は足し算です。少なくとも 1 を足すことができる必要があります。数値としての表現は、可能なサイズ (約 2.96 x10) のために機能しません (推測します)。 ^722 と不快なビット アクセス。既知の効率的な実装はありますか?
algorithm - ビットベクトル(ビットセット)を(Javaで)実装する方法は?
特にJavaでビットベクトルを実装する方法を説明する良いテキスト、本、PDF、またはWebサイトはありますか?
Javaで独自のBitSet実装を作成したいので、この質問をします。その理由は、java.utilからBitSetJavaクラスを変更した場合には実行できない追加機能と微調整を追加したいためです。さらに、ライセンスを処理せずにオープンソースプロジェクトで使用できるように、独自の実装を作成したいと思います。
ありがとう!
c++ - std::bitset ビットオーダーは移植可能ですか?
C++ はビット順序について何か言いますか? 私は特にプロトコル パケット レイアウトに取り組んでおり、特定の数値をビット 5、6、7 (ビット 5 が「最上位」) に書き込むように指定する移植可能な方法があるかどうか疑問に思っています。
私の質問:
- 0x01 は常にビット 7 が設定されたバイトとして表されますか?
- は
bitset<8>().set(7).to_ulong()
常に 1 ですか?
c++ - bitset < > を使用してビット遷移を計算する方法
私はC++が初めてです。0 から 0、0 から 1、1 から 0、1 から 1 への遷移数を 9 ビット シーケンスで計算したいと考えています。次のコードを書きました。
誰か次のことを教えてください
- ループ 2 の最後のビット値を保存して、最後のビットセット出力の最後のビットから次のビットセット出力の最初のビットへの遷移を確認する方法は?
- これがうまくいかない場合、ベクトルに保存し、イテレータを使用して遷移を確認するにはどうすればよいですか?
c++ - オクテットで整列されていないサブフィールドを持つ 96 ビット長のビットフィールド
カスタム ビット フィールドを配置できる 96 ビット長の構造体が必要です。フィールドの長さはいたるところにあります8
, 3
, 26
, 56
. これらの正確な長さを維持することが重要です (1 つの例外を除き、以下を参照してください)。
データを 1 つのコンパクトなフィールドに連結する方法は数多くstd::bitset
ありstruct
ますint
。でも:
操作は非常に高速に行われる必要があるため、この
bitset
アプローチには問題があります。bitset は、1 つのアトミック操作で、(x..y)
範囲全体から範囲を即座に設定する方法を提供しません。(0..96)
個々のビットを設定するためにループするつもりなら、いまいましい。この長さの制限のため、この
struct
アプローチには問題があります。十分な長さがないため、この
int
アプローチには問題があります。int64_t
もちろん、int32_t
これと一緒に使用できますが、以下を参照してください。
明らかな解決策の 1 つは、56 + 8
フィールドをに入れint64_t
、残りを に入れることint32_t
です。ここでの問題は、56
-long フィールドだけが実際には開発の後半で縮小される可能性があるということです。これはint64_t
、 にいくつかの32 - (26 + 3) = 3
スペア ビットとint32_t
.
これらを(コードの観点から)できるだけコンパクトに格納しながら、(とは異なりstd::bitset
)マスキングによって広い領域にアクセスできる方法はありますか?
c++ - C ++でビットセットをshortに変換するにはどうすればよいですか?
ショートパンツを持っている場合bitset<16> bits(*iter)
、このビストをショートパンツに割り当てるにはどうすればよいですか?
ビットセット<16>をshortに変換することは可能ですか?
c++ - C ++:dynamic_bitset
の初期化に問題がありますdynamic_bitset
。私はこのコードを持っています:
data1
ファイルから読み込まれる32ビットの2進数はどこにありますか。
の値を出力するとdata1[j]
、xに割り当てる必要のある正しい値が出力されますが、xを出力すると(想定される初期化後)、xはすべて1になります。
私は何が間違っているのですか?
編集:私はコードを解凍しようとしています。圧縮されたコードは、32ビット長の行で示されます。簡単にアクセスできるように、すべてを1つの構造にまとめたいと思います。
xを初期化する私のコード:
EDIT2:
それぞれ32ビットの8行があります。ループは、32ビットバイナリの8行のそれぞれにアクセスし、その値をdata1に割り当てるループfor
内にネストされているため、data1はループの反復ごとに変化します。
最初の反復:while
while
2回目の反復:
3回目の反復:
等....
x
互いに連結されたすべての値を含む長いビットセット になりたいです。
EDIT3:
1つの方法を試してみてください:
c++ - bitset メンバ関数 count の出力をベクトルに入れるのが遅い
問題がある C++ コードの一部を次に示します。
私の問題は次のとおりです。
- LINE 1 と LINE 2 にコメントを付けると、コードは約 1 秒で実行されます。109ms;
- LINE2 のみをコメントすると、コードは約実行されます。115 ミリ秒で。
- LINE 1 と bit_count=0 をコメントすると、コードは約 130 ミリ秒実行されます。
- 両方の行 (LINE 1 と 2) がコメント化されていない場合、コードは約 1 秒で実行されます。350ミリ秒。
LINE1 と LINE2 を使用するとコードが遅くなるのはなぜですか? 納得のいく説明が見つかりません。
vec.push_back(bit_count) も試してみましたが、これも遅いことに注意してください。また、さまざまなキャスト操作を試みましたが、成功しませんでした。
c++ - どうすればメモリに正確に2ビットを入れることができますか?
0から3までの値をデータ構造に格納できるはずです。したがって、2ビットが必要です。このデータ構造は素晴らしい2^16の場所になります。だから、私は2 ^ 16 * 2(ビット)が欲しいです。C + +では、メモリに正確に2ビットを使用しますか?