web-dev-qa-db-fra.com

Conversion de l'octet C # en BitArray

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.

13
Shamim Hafiz

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.

35
CodeCaster

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

7
Jesus Mogollon

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;
    }
3
Akbar Jafari