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

0 投票する
2 に答える
3396 参照

c++ - ビットセット バイナリ AND 演算

次の行を書きました。

出力は次のようになると予想していました。

しかし、ループは「0000」を出力するだけです。欠けている基本的な概念は何ですか?

0 投票する
1 に答える
543 参照

c++ - すべてのビットへの加算とアクセスを実装するビットセット

ビットセット(のような)構造を追加する方法を探しているので、この質問はこれに関連しています。少なくとも 2400 ビットを格納でき、それらすべてに (ランダムに) アクセスできるビットセットのようなものが必要です。クラスが持たなければならない 2 番目の重要な能力は足し算です。少なくとも 1 を足すことができる必要があります。数値としての表現は、可能なサイズ (約 2.96 x10) のために機能しません (推測します)。 ^722 と不快なビット アクセス。既知の効率的な実装はありますか?

0 投票する
2 に答える
8220 参照

algorithm - ビットベクトル(ビットセット)を(Javaで)実装する方法は?

特にJavaでビットベクトルを実装する方法を説明する良いテキスト、本、PDF、またはWebサイトはありますか?

Javaで独自のBitSet実装を作成したいので、この質問をします。その理由は、java.utilからBitSetJavaクラスを変更した場合には実行できない追加機能と微調整を追加したいためです。さらに、ライセンスを処理せずにオープンソースプロジェクトで使用できるように、独自の実装を作成したいと思います。

ありがとう!

0 投票する
3 に答える
1505 参照

c++ - std::bitset ビットオーダーは移植可能ですか?

C++ はビット順序について何か言いますか? 私は特にプロトコル パケット レイアウトに取り組んでおり、特定の数値をビット 5、6、7 (ビット 5 が「最上位」) に書き込むように指定する移植可能な方法があるかどうか疑問に思っています。

私の質問:

  • 0x01 は常にビット 7 が設定されたバイトとして表されますか?
  • bitset<8>().set(7).to_ulong()常に 1 ですか?
0 投票する
2 に答える
358 参照

c++ - bitset < > を使用してビット遷移を計算する方法

私はC++が初めてです。0 から 0、0 から 1、1 から 0、1 から 1 への遷移数を 9 ビット シーケンスで計算したいと考えています。次のコードを書きました。

誰か次のことを教えてください

  1. ループ 2 の最後のビット値を保存して、最後のビットセット出力の最後のビットから次のビットセット出力の最初のビットへの遷移を確認する方法は?
  2. これがうまくいかない場合、ベクトルに保存し、イテレータを使用して遷移を確認するにはどうすればよいですか?
0 投票する
3 に答える
876 参照

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)マスキングによって広い領域にアクセスできる方法はありますか?

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

c++ - C ++でビットセットをshortに変換するにはどうすればよいですか?

ショートパンツを持っている場合bitset<16> bits(*iter)、このビストをショートパンツに割り当てるにはどうすればよいですか?

ビットセット<16>をshortに変換することは可能ですか?

0 投票する
1 に答える
6231 参照

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はループの反復ごとに変化します。 最初の反復:whilewhile

2回目の反復:

3回目の反復:

等....

x互いに連結されたすべての値を含む長いビットセット になりたいです。

EDIT3:
1つの方法を試してみてください:

0 投票する
1 に答える
101 参照

c++ - bitset メンバ関数 count の出力をベクトルに入れるのが遅い

問題がある C++ コードの一部を次に示します。

私の問題は次のとおりです。

  1. LINE 1 と LINE 2 にコメントを付けると、コードは約 1 秒で実行されます。109ms;
  2. LINE2 のみをコメントすると、コードは約実行されます。115 ミリ秒で。
  3. LINE 1 と bit_count=0 をコメントすると、コードは約 130 ミリ秒実行されます。
  4. 両方の行 (LINE 1 と 2) がコメント化されていない場合、コードは約 1 秒で実行されます。350ミリ秒。

LINE1 と LINE2 を使用するとコードが遅くなるのはなぜですか? 納得のいく説明が見つかりません。

vec.push_back(bit_count) も試してみましたが、これも遅いことに注意してください。また、さまざまなキャスト操作を試みましたが、成功しませんでした。

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

c++ - どうすればメモリに正確に2ビットを入れることができますか?

0から3までの値をデータ構造に格納できるはずです。したがって、2ビットが必要です。このデータ構造は素晴らしい2^16の場所になります。だから、私は2 ^ 16 * 2(ビット)が欲しいです。C + +では、メモリに正確に2ビットを使用しますか?