Existe-t-il une fonction prédéfinie disponible pour convertir un byte
en BitArray
?
Une façon serait d'inspecter chaque bit de la valeur byte
puis d'effectuer l'opération au niveau du bit. Je me demandais s'il y avait un moyen plus simple que cela.
Oui, en utilisant le constructeur BitArray()
approprié comme décrit ici :
var bits = new BitArray(arrayOfBytes);
Vous pouvez l'appeler avec new BitArray(new byte[] { yourBite })
pour créer un tableau d'un octet.
si vous avez un nombre d'octets ou même un entier, etc.
BitArray myBA = new BitArray(BitConverter.GetBytes(myNumber).ToArray());
Remarque: vous avez besoin d'une référence à System.Linq
La solution est simple, juste deux instructions (qui sont marquées dans le code suivant), convertissez simplement l'octet en binaire en utilisant Convert.ToString(btindx,2)
, mettez à zéro la chaîne résultante sur 8 bits (ou longueurs 8), strBin.PadLeft(8,'0');
et concatène toutes les chaînes binaires pour former un flux binaire de votre tableau d'octets. Si vous le souhaitez, vous pouvez également former un tableau de chaînes pour séparer la représentation binaire de chaque octet.
byte[] bt = new byte[2] {1,2};
string strBin =string.Empty;
byte btindx = 0;
string strAllbin = string.Empty;
for (int i = 0; i < bt.Length; i++)
{
btindx = bt[i];
strBin = Convert.ToString(btindx,2); // Convert from Byte to Bin
strBin = strBin.PadLeft(8,'0'); // Zero Pad
strAllbin += strBin;
}