Question

Le problème est que j'ai un tableau d'octets avec 200 Index et que vous voulez juste vérifier que le bit est quatrième MonTableau [75] est égale à zéro (0) ou un (1).

byte[] MyArray; //with 200 elements

//check the fourth BIT of  MyArray[75]
Était-ce utile?

La solution

Le quatrième bit dans l'élément 75?

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

L'opérateur & vous permet d'utiliser une valeur en tant que masque.

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

Vous pouvez utiliser cette méthode pour recueillir l'une des valeurs de bits en utilisant la même technique.

1   = 00000001
2   = 00000010
4   = 00000100
8   = 00001000
16  = 00010000
32  = 00100000
64  = 01000000
128 = 10000000

Autres conseils

Quelque chose comme:

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

En supposant que vous vouliez dire 4 bits de la droite.

Et vous pouvez vérifier System.Collections.BitArray, juste pour être sûr que vous n'êtes pas réinventer la roue.

    private bool BitCheck(byte b, int pos)
    {
        return (b & (1 << (pos-1))) > 0;
    }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top