stm32f10x_gpio.h中结构体定义里, GPIO_Mode_IN_FLOATING = 0x04,这个0x04指的是什么?
发布网友
发布时间:2022-05-29 13:15
我来回答
共1个回答
热心网友
时间:2023-10-19 10:55
首先,你要知道~0化为二进制是11111111
其次,0x04化为二进制就是00000100.~(0x04))化为二进制就是11111011.
再者,你要熟悉“与”运算。就是1|1 == 1,1|0 == 1, 0|1 == 1, 0|0 == 0。
简单的说,就是遇到1结果就是1,只有2个都是0的时候结果才是0.
最后,这个运算,你要知道 运算符等级,可以化为(~0) == (a | ~(0x04))
这样看就很清楚了。因为~(0x04)只有第三位是0,其他位都是1,所以,结果中除了第三位之外,其他位绝对为1.这个时候,第三位就靠a的第三位来确定了。如果a的第三位为1,那么结果就是11111111.要是0的话,结果就是11111011了。
这样就可以验证a的第3位是否为1了。