Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ boost动态字节集从uint16复制位_C++_Boost_Boost Dynamic Bitset - Fatal编程技术网

C++ boost动态字节集从uint16复制位

C++ boost动态字节集从uint16复制位,c++,boost,boost-dynamic-bitset,C++,Boost,Boost Dynamic Bitset,我需要创建24位集。 第一(0)位必须由布尔设置。 和其他(1-23)我需要从uint32值复制第一位 是否可以使用动态_位集执行此操作 我的代码我试过了,但错了: typedef boost::dynamic_bitset<unsigned char> DataType; DataType bs(24, intValue); bs.set(0, booleanValue); typedef boost::dynamic_位集数据类型; 数据类型bs(24,intValue); b

我需要创建24位集。 第一(0)位必须由布尔设置。 和其他(1-23)我需要从uint32值复制第一位

是否可以使用动态_位集执行此操作

我的代码我试过了,但错了:

typedef boost::dynamic_bitset<unsigned char> DataType;
DataType bs(24, intValue);
bs.set(0, booleanValue);
typedef boost::dynamic_位集数据类型;
数据类型bs(24,intValue);
bs.set(0,布尔值);
刚刚左移:

    DataType bs(24, intValue);
    bs <<= 1;
    bs.set(0, boolValue);

因此,我成功地通过这种方式实现了这一点,而没有boost位集:

uint32_t buffer(0xAAAAAAAA);
buffer = buffer << 1;
buffer |= true << 0;

unsigned char newRecord[3];

newRecord[0] = buffer;
newRecord[1] = buffer << 8;
newRecord[2] = buffer << 16;
uint32\u t缓冲区(0xaaaa);

缓冲区=缓冲区感谢您的更正。但此代码将用布尔值替换位集中int值的第0位。在重新阅读编辑的问题后更新<代码>真
input: 0x666
#1: 000000000000011001100110 0x666
#2: 000000000000110011001100 0xccc
#3: 000000000000110011001101 0xccd
uint32_t buffer(0xAAAAAAAA);
buffer = buffer << 1;
buffer |= true << 0;

unsigned char newRecord[3];

newRecord[0] = buffer;
newRecord[1] = buffer << 8;
newRecord[2] = buffer << 16;