<分区>
我用位值定义了 4 个引脚值 P1_1、P1_2、P1_3、P1_4。 (1/0)
我想将它们组合成一个字节值,例如:
0000 0101(3 LSB 是引脚)
我该怎么做?
<分区>
我用位值定义了 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/