将 3 个字节/引脚值组合成一个字节
Combing 3 byte/pin values into one byte
我定义了 4 个引脚值,P1_1、P1_2、P1_3 P1_4,带有位值。(1/0)
我想将它们合并为一个字节值,例如:
0000 0101(3 LSB 是引脚)
我该怎么做?
类似
value = (P1_1<<3)|(P1_2<<2)|(P1_3<<1)|(P1_4);
免责声明:这是一个非常丑陋的例子。在实际代码中,您可能希望为 shift 定义某种常量(因此您可以在不使用更多魔术文本值的情况下执行反向操作)。
另请注意,如果 P 常量之一不是 0 或 1,这将产生意外结果。在这种情况下,可以使用类似的东西!!P1_x而不是P1_x。
bitset<4> temp;
temp[0] = P1_1;
temp[1] = P1_2;
temp[2] = P1_3;
temp[3] = P1_4;
unsigned char value = static_cast<unsigned char>(temp.to_ulong());
相关文章:
- 如果我向一个12字节的缓冲区写入的字节数少于12,会发生什么情况
- 在编译时而不是运行时创建一个由两个字节组成的值
- 我该如何循环遍历我的数组(缓冲区——包含一个文本文件),并将其打印成30字节的块
- 程序错误地读取了二进制文件的一个字节
- UDP 套接字读取最后一个传入字节
- 解压缩串联的 zlib 流而不读取下一个字节
- 一次读取一个字节的 unicode
- 如何从 int 一次写入一个字节的文件?C++
- 一个对象什么时候可以有非零大小的一个,但不能同时具有一个或多个字节的存储
- 我想将四个字节合并为一个数字以进行串行传输
- 如何将一个字节数组正确地恢复为C 中的对象
- 我正在尝试修改一个字节数组并通过 JNI 将其从 c++ 发送到 java
- 快速简单的方法,以C++为单位一次读取一个字节的 stdin
- 如何编写一个字节表示为c 中的文件
- 两个 4 位位字段加起来不等于一个字节的大小 - 如何修复?
- Python3 TypeError:一个类似字节的对象是必需的,而不是'str'
- 在java中将两个字节(一个正字节和另一个负字节)合并为短字节
- 字符串需要多少字节?一个字符
- 一个字节一个字节地读取文件,会产生损坏的数据
- C / c++ -如何一个字节一个字节地从网上下载(像文件流一样)