有没有一种方法可以定义和发送单个BIT

时间:2019-08-01 16:39:18

标签: c++ arduino

该想法是将各种无线电发射模块与模拟线圈发射信号进行比较。

因此,有必要发送单个比特以与arduino无线电发送模块进行比较。

我已经尝试过包含位集并定义如下内容:

std::bitset<1> p(1);

但是它仍然有4个字节大小。

有什么办法可以声明一个比特吗?

1 个答案:

答案 0 :(得分:1)

不,您不能声明单个位。仅以8(即字节)的倍数为单位。在C ++中,类型 char 的变量的大小为1个字节。如果要发送/比较一系列位,则可以使用 char s或 char s数组。

char single_byte = 32; // same as 0010 0000
char some_bytes[3] = {8, 254, 1}; // same as 0000 1000 1111 1110 0000 0001

要检查位是否设置在特定位置,可以使用之类的按位运算符。

// example:
// check if the second bit of the second byte in some_bytes is set

char filter = 64; // 0100 0000
if (some_bytes[1] & filter) // 1111 1110 & 0100 000 = 0100 0000
// returns true