带有if语句的c++ bitset

C++ bitset with if statement

本文关键字:c++ bitset 语句 if 带有      更新时间:2023-10-16

我想知道是否有办法使用特定范围的位与if语句。我使用fpga发送8位二进制数据通过usb到pc。每个事务有3个8位数据包。在每个数据包中,前四位是由外部模块生成的,我想在最后四位发送控制数据。=>Usb接口接受数据作为整数,我有bitset函数将整数转换为8位二进制。我想用最后四位来和if语句一起使用。有什么办法可以帮我吗?

thanks in advance

如果您有一个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结果,以去除那里不需要的高位。