c++ - 将 3 个字节/引脚值合并为一个字节

标签 c++ c binary

<分区>

我用位值定义了 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。

关于c++ - 将 3 个字节/引脚值合并为一个字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18876269/

相关文章:

c++ - 指针在赋值前会占用内存吗?

php - 使用 C++ 将值添加到列中的现有 SQL 值

c - 在 C 中写入并关闭文件后读取文件

python - 为什么 Python bytearray 的值 >= 256

python - Pandas 数据框 : How to convert numeric columns into pairwise categorical data?

binary - 卡德包: Binary decison diagrams

c++ - std::sort (stable_sort) 比较函数返回值的混淆结果

c++ - 将任意大小的字符串分配给指向 char 的指针

ptrace 是否可以导致被跟踪进程在不访问可执行系统调用指令的情况下执行系统调用?

c - 为什么 printf() 将 double 变量打印为 f 字符?