2013-04-18 148 views
0

我无法弄清楚这一点,我可以使用一些帮助。因此,某些硬件的数据表中说:“报告的错误代码是每个检测到的错误的OR'd结果。错误代码在表3中给出。”错误代码OR'd

表3是

0x00 -> No error 
0x01 -> Power error 
0x02 -> Receiver error 
0x03 -> Transmitter error 

然后将数据表显示了一个例子。

Example : 
(ETV001T0C) + checksum -> Test status 0x0C (Rx and Tx error) 

0C是错误字节。 所以我的第一个问题是 - 我的数学错了吗?我不知道他们从哪里获得0C。我很确定0x02 | 0x03 = 0x03。第二,即使它是0C,你怎么知道有什么错误呢?

回答

2

该表给出位移位置,正如<<运算符所使用的那样。

1 << 0x00 = 0001b (?) -> No error 
1 << 0x01 = 0010b -> Power error 
1 << 0x02 = 0100b -> Receiver error 
1 << 0x03 = 1000b -> Transmitter error 

使用Python作为一个计算器:

>>> (1 << 2) | (1 << 3) 
12 
>>> hex((1 << 2) | (1 << 3)) 
'0xc' 
+0

哇哦,我应该已经看到了...谢谢! – Axis 2013-04-18 04:28:11