3

問題は、200個のインデックスを持つバイトの配列があり、MyArray [75]の4番目のビットがZero(0)またはOne(1)であることを確認したいということです。

byte[] MyArray; //with 200 elements

//check the fourth BIT of  MyArray[75]
4

3 に答える 3

8

要素75の4番目のビット?

if((MyArray[75] & 8) > 0) // bit is on
else // bit is off

&演算子を使用すると、値をマスクとして使用できます。

xxxxxxxx = ?
00001000 = 8 &
----------------
0000?000 = 0 | 8

この方法を使用すると、同じ手法を使用して任意のビット値を収集できます。

1   = 00000001
2   = 00000010
4   = 00000100
8   = 00001000
16  = 00010000
32  = 00100000
64  = 01000000
128 = 10000000
于 2009-08-10T18:50:55.007 に答える
4

何かのようなもの:

if ( (MyArray[75] & (1 << 3)) != 0)
{
   // it was a 1
}

あなたが右から4番目のビットを意味していると仮定します。

System.Collections.BitArrayそして、あなたはあなたが車輪を再発明していないことを確認するために、チェックアウトしたいかもしれません。

于 2009-08-10T18:51:12.480 に答える
2
    private bool BitCheck(byte b, int pos)
    {
        return (b & (1 << (pos-1))) > 0;
    }
于 2009-08-10T18:55:47.213 に答える