2010-09-13 59 views
1

我必須從1個字節中檢索第一個比特。 爲此,我將整個1字節存儲在unsigned char Array中。現在我檢索到的第一位按下面的代碼:如何檢索從字節數組(無符號字符數組)1位用C

unsigned char byteArray[100]; 
..... 
.....//some code to store 1 byte in byte array 
//now 1st bit will be: 
int bit=(int) byteArray[0]; 

我只是想確認這一步驟涉及檢索第1位正確與否?有沒有更好的方法C.

回答

1

來檢索無符號字符數組(字節數組)單位無,數組索引是要返回數據unsigned char型的大小,而不是一個位。使用byteArray[0] & 1; - 屏蔽該值,以便只獲取第一位(取決於哪一端是「第一個」)。另一端是& 128

+0

+1用於處理殘局。 – Alam 2010-09-13 04:51:17

+0

如果我必須檢索MSB,那麼它應該是byteArray [7]&128? – james 2010-09-13 04:54:00

+1

@all我很抱歉。我有一個查詢endianess是存儲從較低地址或更高地址凝視一個字。在這種情況下,它會如何影響我的第一位? – Alam 2010-09-13 04:59:40

2

如何(爲什麼)你存儲在一個字節數組用於此目的的字節?這不是必需的。

在任何情況下,如果要獲取一個字節的第一位,所有你需要做的是一個位操作。

unsigned char byte = <some random value>; // your byte containing the value. 
unsigned int first_bit = byte & 1; // for Least significant bit 

操作byte & 1bitwise AND operation

相關問題