2013-01-17 30 views
0

我正在嘗試讀取byte並將其轉換爲bit。我正在嘗試創建一個標記系統。使用真或假標誌將字節轉換爲8位

所以字節3會將前兩個標誌提升爲真。但是,當我嘗試轉換它時,只會傳遞byte的值作爲BitArray的長度。任何幫助不勝感激。

BinaryReader br = new BinaryReader(filestream); 

Byte flag = br.ReadByte(); 

BitArray flags = new BitArray(flag); 

record.Isbool = flags[0]; 
record.Isbool1 = flags[1]; 

etc 

回答

3

new BitArray(flag);使用BitArray(Int32 length)構造函數。這設定了容量,而不是你想要的。

您可以使用

new BitArray(new byte[] { flag }); 
1

您需要使用

BitArray flags = new BitArray(new byte[] {flag}); 

byte[]超負荷使用來自字節的位;目前您正在調用int超載,它會給出您發現的長度。

1
BinaryReader br = new BinaryReader(filestream); 

Byte flag = br.ReadByte(); 

BitArray flags = new BitArray(new byte[] {flag}); 

record.Isbool = flags[0]; 
record.Isbool1 = flags[1]; 

應該可以通過調用BitArray(byte[])的構造函數來工作。

0

你嘗試掩蓋。 int flag = value & 0x01掩蓋第1位。