【发布时间】:2016-08-30 07:15:17
【问题描述】:
有没有一种快速的方法可以将一个 uint8_t 数组转换为一个比特集。
uint8_t test[16];
// Call a function which populates test[16] with 128 bits
function_call(& test);
for(int i=0; i<16; i++)
cout<<test[0]; // outputs a byte
cout<<endl;
std:: bitset<128> bsTest;
我试过了,但是不行
bsTest(test);
【问题讨论】:
-
对我来说很好。
-
我收到此错误“错误:不匹配调用‘(std::bitset) (uint8_t [16])’”
-
@DeiDei:如果
test被清零,它会“工作”,一些编译器可能会使用基于字符串的构造函数,确定它是空字符串(第一个字节是NUL),并将bitset归零;如果test为零,则巧合正确,但在所有其他情况下都是错误的。 -
@ShadowRanger 我在写评论时认为这是真的。似乎 OP 出现编译器错误,我无法重现。
-
@CPP_NEW 使用给您带来问题的实际代码编辑问题。
标签: c++ bitset std-bitset