stm32,知道各个引脚输出的,这么合成一个二进制

例如,第一个引脚输出1,第二个引脚输出0,怎么把他变成二进制10

参考GPT和自己的思路:

要将多个引脚的输出转换成二进制数,可以采用位运算的方法。比如,如果第一个引脚输出为1,第二个引脚输出为0,那么可以将它们合成二进制数10(即第一个引脚代表二进制数的十位,第二个引脚代表二进制数的个位)。

具体的做法是,将每个引脚的输出值乘以对应的权重(即2的指数,从0开始),然后将它们相加,得到的结果就是对应的二进制数。例如,第一个引脚输出为1,第二个引脚输出为0,那么它们的二进制数为10,计算方法如下:

1 * 2^1 + 0 * 2^0 = 2 + 0 = 2

因此,将第一个引脚输出为1,第二个引脚输出为0的情况合成的二进制数为10。同样地,如果有多个引脚输出,可以按照这个方法进行计算。

可以把第一个引脚的输出左移1位(<<1)然后按位或(|)上第二个引脚就可以了。

参考:https://blog.csdn.net/m0_46672151/article/details/106312567