[英]how to add two bits into a hex
我有兩個字節,並且我設置了不同的位以獲取不同的組合。 例如,字節1的第7位和字節2的第1位,第2位使組合設備就緒。 現在,我創建了面具
#define C1_device_ready (0x80 | 0x100 | 0x200)
然后,我讀取了數據並嘗試進行比較。 我可以做1個字節(data [0]&mask == mask)。 但是,如何為有兩個字節的data_0和data [1]的C1_device_ready掩碼計算它。 是否容易做到?還是只應在單個字節中進行屏蔽? :: added :: data是未簽名的char數據[2]
如果data
是一個unsigned char
數組,則可以測試
if ((data[0] & mask) == (mask & 0xFF) && (data[1] & mask) == ((mask >> 8) & 0xFF))
或合並兩個data[i]
並檢查
if (((data[0] | (data[1] << 8)) & mask) == mask)
采用
if (((data[0] | (data[1] << 8)) & mask) == mask) {
// do something
}
((data[0] | (data[1]<<8)) & mask) == mask
應該管用。 可能需要將事物強制轉換為unsigned int
嘗試:
if ((*(short *)data) & C1_device_ready)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.