我正在使用netduino plus 2,并且需要了解如何将单个引脚的数字转换为十六进制以进行位屏蔽,例如:
PERSUDO
if counter_value_bit_1 is 1, do:
write 1 to D0 pin
else
write 0 to D0 pin
..... counting from bit_1 through bit_9.
if counter_value_bit_9 is 1, do:
write 1 to D0 pin
else
write 0 to D0 pin
答案
if (counter_value & 0x01) { //bit_1
...}
if (counter_value & 0x200) { //bit_9
...}
我的问题:你怎么得到0x200 =第9位,等等? 1到9之间的位的示例或两个将是很好的。
感谢
答案 0 :(得分:0)
您使用哪种语言? 在C中,您无法以便携方式处理“9”,请参阅字节排序。如果你知道字节顺序,你可以用第9位提取字节。
#define BYTE_WITH_BIT_9 ...
int counter_value = 42;
((char*)counter_value)[BYTE_WITH_BIT_9]
转换为char*
以访问原始字节。然后选择字节,现在你可以进行魔术位操作。