该想法是将各种无线电发射模块与模拟线圈发射信号进行比较。
因此,有必要发送单个比特以与arduino无线电发送模块进行比较。
我已经尝试过包含位集并定义如下内容:
std::bitset<1> p(1);
但是它仍然有4个字节大小。
有什么办法可以声明一个比特吗?
答案 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