Pour convertir votre entrée entière en un tableau de bools de n'importe quelle taille, il suffit d'utiliser LINQ.
bool[] ToBits(int input, int numberOfBits) {
return Enumerable.Range(0, numberOfBits)
.Select(bitIndex => 1 << bitIndex)
.Select(bitMask => (input & bitMask) == bitMask)
.ToArray();
}
Ainsi, pour convertir un nombre entier en un tableau de bools de 32 bits maximum, il suffit de l'utiliser comme suit :
bool[] bits = ToBits(65, 8); // true, false, false, false, false, false, true, false
Vous pouvez inverser le tableau en fonction de vos besoins.
Array.Reverse(bits);
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 :)