2

48 バイトのバイト配列があり、この配列のバイトの 3 ビットごとに読み取りたいのですが、どうすればこれを達成できますか?

これは私のデバイスの出力です

100510000 10000000 100390000 10000000 100390000 10000000 100460000 10000000 100390000 10000000 100390000 10000000 100390000 10000000 100390000 10000000 100390000 10000000 100320000 10000000 100460000 10000000 100390000 10000000 100390000 10000000 100320000 10000000 100460000 10000000 100390000 10000000 100300000 10000000 100300000 10000000 100310000 10000000 100310000 10000000 100390000 10000000 100300000 10000000 100320000 10000000 120560000 10000000

4

6 に答える 6

1
byte[] bytes;
for (var i = 0; i < bytes.Length; i++)
{
    bytes[i] &= 4;
}
于 2013-04-22T13:48:10.570 に答える
1

これを試して:

byte[] bytearray = new byte[4];

var result = bytearray.Select(input=>new System.Collections.BitArray(input)[2]);
于 2013-04-22T13:52:27.583 に答える
1

これにより、すべてのバイトが繰り返され、指定されたビットが 1 バイトで返されます。

    byte[] myBytes;         // populate here
    int bitLocation = 2;    // Bit number
    for (var i = 0; i < myBytes.Length; i++)
    {
        byte myByte = myBytes[i];
        var requiredBit = Convert.ToInt32((myByte & (1 << bitLocation - 1)) != 0);
        // save the requiredBit somehow
    }
于 2013-04-22T14:03:33.787 に答える
1
private bool BitCheck(byte b, int pos)
{
    return (b & (1 << (pos-1))) > 0;
}
于 2013-04-22T13:49:56.510 に答える
1
byte[] bytes;
for (var i = 0; i < bytes.Length; i++)
{
   BitArray bits=    bytes[i];
   bool bit3= bits[2];
}
于 2013-04-22T13:51:07.987 に答える