在C++中如何从BIT集< 16 >中选择第一个8位?
我有一个变量,它的类型是位集。我想得到变量的前8位并将其放入char变量中。我知道如何将比特集转换成字符,但是我不知道如何选择前8位并将其转换成char。 < p>如果前面8位是8兆字节,考虑使用>操作符:在C++中如何从BIT集< 16 >中选择第一个8位?,c++,bitset,C++,Bitset,我有一个变量,它的类型是位集。我想得到变量的前8位并将其放入char变量中。我知道如何将比特集转换成字符,但是我不知道如何选择前8位并将其转换成char。 < p>如果前面8位是8兆字节,考虑使用>操作符: #include <iostream> int main() { std::bitset<16> myBits(0b0110110001111101); char reg = 0; reg = static_cast<char>
#include <iostream>
int main() {
std::bitset<16> myBits(0b0110110001111101);
char reg = 0;
reg = static_cast<char>(myBits.to_ulong() >> 8);
}
从:
如果val的值表示大于位集大小,
只考虑val的最低有效位
因此,另一个解决方案可能是:
#include <iostream>
int main() {
std::bitset<16> myBits16(0b0110110001111101);
std::bitset<8> myBits8(myBits16.to_ulong());
char reg = static_cast<char>(myBits8.to_ulong());
}
要在单个字符变量中使用文本表示法01001101还是二进制表示法?请尝试使用static\u castmybitset.to\u ulong&0xff。