引用各个引脚,十六进制,位屏蔽

时间:2014-03-07 11:27:48

标签: hex

我正在使用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之间的位的示例或两个将是很好的。

感谢

1 个答案:

答案 0 :(得分:0)

您使用哪种语言? 在C中,您无法以便携方式处理“9”,请参阅字节排序。如果你知道字节顺序,你可以用第9位提取字节。

#define BYTE_WITH_BIT_9 ...
int counter_value = 42;
((char*)counter_value)[BYTE_WITH_BIT_9]

转换为char*以访问原始字节。然后选择字节,现在你可以进行魔术位操作。