2

を読み取ってbyteに変換しようとしていbitます。フラグシステムを作成しようとしています。

したがって、バイト 3 は、最初の 2 つのフラグを true として上げます。ただし、変換しようとすると、の値が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
4

4 に答える 4

4

new BitArray(flag);BitArray(Int32 length)コンストラクターを使用します。これは、必要なものではなく、容量を設定します。

使用できます

    new BitArray(new byte[] { flag }); 
于 2013-01-17T13:04:21.373 に答える
1

使用する必要があります

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

オーバーbyte[]ロードはバイトのビットを使用します。現時点ではint、発見した長さを与えるオーバーロードを呼び出しています。

于 2013-01-17T13:03:58.300 に答える
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[])コンストラクターを呼び出すことにより、動作するはずです。

于 2013-01-17T13:04:18.123 に答える
0

マスクしてみた?int flag = value & 0x01 で 1 番目のビットをマスクします。

于 2013-01-17T13:04:46.693 に答える