の初期化に問題がありますdynamic_bitset
。私はこのコードを持っています:
for(int j=(data1.length()-1); j>=0; j--){
x[j] = data1[j];
}
data1
ファイルから読み込まれる32ビットの2進数はどこにありますか。
の値を出力するとdata1[j]
、xに割り当てる必要のある正しい値が出力されますが、xを出力すると(想定される初期化後)、xはすべて1になります。
私は何が間違っているのですか?
編集:私はコードを解凍しようとしています。圧縮されたコードは、32ビット長の行で示されます。簡単にアクセスできるように、すべてを1つの構造にまとめたいと思います。
xを初期化する私のコード:
int size = numLines * 32; //numLines is the number of lines of 32 bits
boost::dynamic_bitset<> x(size);
EDIT2:
それぞれ32ビットの8行があります。ループは、32ビットバイナリの8行のそれぞれにアクセスし、その値をdata1に割り当てるループfor
内にネストされているため、data1はループの反復ごとに変化します。
最初の反復:while
while
data1: 10001001110000001001011100110011
2回目の反復:
data1: 00110011001110001010001110000000
3回目の反復:
data1: 00000011100000000000000000000000
等....
x
互いに連結されたすべての値を含む長いビットセット になりたいです。
EDIT3:
1つの方法を試してみてください:
for(int i=0; i<numLines; i++){
d.append(data1);
}
boost::dynamic_bitset<> x(std::string(d));