繁体   English   中英

具有if语句的C ++位集

[英]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
}

这也可以与intshort等类型一起使用,但是您也需要对top结果进行& -mask,以去除那里不需要的高位。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM