我有兩個字節,我設置不同的位,以獲得不同的組合。 例如,字節1的位7和字節2的位1,位2使組合設備就緒。 現在,我已經創建了面具如何將兩位添加到十六進制
#define C1_device_ready (0x80 | 0x100 | 0x200)
然後我讀的數據,並嘗試比較。 1字節我可以做(數據[0] &掩碼==掩碼)。 但是我怎樣才能計算它有兩個字節,數據[0] 和數據[1]的C1_device_ready掩碼。 它很容易或我應該只在單個字節掩蓋。 ::加入::數據是無符號字符數據[2]
感謝的作品。你能否解釋一下這種轉變(<< 8)。 – user1566277 2012-08-10 12:19:56
'data [0] | (data [1] << 8)'將來自'data'數組的兩個字節組合到一個'int'中,在最低有效字節中有'data [0]',每個班次的最低有效字節。由於位操作'''和'|'自動進行整數提升,所以不需要手動將一個轉換插入到較大的類型。 – 2012-08-10 12:27:36
這解釋得很好。非常感謝這樣一個明確的答案。 – user1566277 2012-08-10 12:40:31