[英]How to query if any bit in a range is set in a C++ std::bitset?
[英]How to select first 8 bit from bitset<16> in c++?
我有一个变量,它的类型是bitset <16>。 我想得到我的变量的前8位并将其放入char变量。 我知道如何将bitset转换为char,但我不知道如何选择前8位并将其转换为char。
如果你通过“前8位”谈论8-MSB,考虑使用>>运算符:
#include <iostream>
int main() {
std::bitset<16> myBits(0b0110110001111101);
char reg = 0;
reg = static_cast<char>(myBits.to_ulong() >> 8);
}
如果val的值表示大于bitset大小,则仅考虑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());
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.