[英]C++ bitset with if statement
我想知道是否无论如何都可以在if语句中使用特定范围的位。 即时通讯使用fpga通过USB向PC发送8位二进制数据。 每笔交易有3x 8位数据包。 在每个数据包中,前四位由外部模块生成,我想在后四位中发送控制数据。 => USB接口接受数据作为整数,我有位功能将整数转换为8位二进制。 我想使用最后四位与if语句一起使用。 有什么办法可以做到吗?
提前致谢
如果您使用unsigned char
作为输入:
void foo(uint8_t x) {
uint8_t top4 = x >> 4; // moves top 4 bits down by 4 positions
uint8_t bottom4 = x & 0x0f; // zeros out top 4 bits, leaving bottom 4
}
这也可以与int
, short
等类型一起使用,但是您也需要对top
结果进行&
-mask,以去除那里不需要的高位。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.