Utilisez le BitArray
classe.
int value = 3;
BitArray b = new BitArray(new int[] { value });
Si vous voulez obtenir un tableau pour les bits, vous pouvez utiliser la fonction BitArray.CopyTo
avec une méthode bool[]
le tableau.
bool[] bits = new bool[b.Count];
b.CopyTo(bits, 0);
Notez que les bits seront stockés du moins significatif au plus significatif, vous pouvez donc utiliser la fonction Array.Reverse
.
Et enfin, si vous voulez obtenir des 0 et des 1 pour chaque bit au lieu des booléens (j'utilise un byte
pour stocker chaque bit, ce qui est moins coûteux qu'une carte à puce. int
):
byte[] bitValues = bits.Select(bit => (byte)(bit ? 1 : 0)).ToArray();
0 votes
Attends, tu veux convertir le
int
à unbyte
ou unbit-array
?0 votes
Un octet contient 8 bits, donc oui, je veux un tableau qui contient 8 bits, un dans chaque emplacement.
0 votes
Voulez-vous un tableau de
true
/false
ou un tableau de chars rempli avec l'une ou l'autre des valeurs suivantes1
o2
?0 votes
@Afra : J'ai édité la question pour dissiper la confusion. La confusion vient du fait qu'il existe un type appelé
byte
en C#. C'est le même type exact queInt8
. Il est no un tableau. C'est très similaire à la façon dont unint
est le même type queInt32
. Si vous n'aimez pas mon montage, n'hésitez pas à le reprendre ou à le modifier comme bon vous semble :)