我在初始化我的dynamic_bitset
. 我有这个代码:
for(int j=(data1.length()-1); j>=0; j--){
x[j] = data1[j];
}
data1
从文件中读取的 32 位二进制数在哪里。
当我输出 的值时data1[j]
,它会输出我需要分配给 x 的正确值,但是当我输出 x 时(在假定的初始化之后),x 都是 1。
我究竟做错了什么?
编辑:我正在尝试解压缩代码。压缩代码以 32 位长的行给出。我想把所有东西都放在一个结构中以便于访问。
我初始化x的代码:
int size = numLines * 32; //numLines is the number of lines of 32 bits
boost::dynamic_bitset<> x(size);
EDIT2:
每行有 8 行 32 位。该for
循环嵌套在一个while
循环中,该循环访问这 8 行 32 位二进制文件中的每一行并将该值分配给 data1,因此 data1 会随着循环的每次迭代而变化while
。
第一次迭代:
data1: 10001001110000001001011100110011
第二次迭代:
data1: 00110011001110001010001110000000
第三次迭代:
data1: 00000011100000000000000000000000
ETC....
我想x
成为一个包含所有这些值的长位集,这些值相互连接。
EDIT3:
尝试一种方法:
for(int i=0; i<numLines; i++){
d.append(data1);
}
boost::dynamic_bitset<> x(std::string(d));