Byte to Binary String C# - affiche les 8 chiffres

Je veux afficher un octet dans la zone de texte. Maintenant, j'utilise:

Convert.ToString(MyVeryOwnByte, 2);

Mais quand byte est a 0 Au début, ces 0 sont en cours de coupure. Exemple:

MyVeryOwnByte = 00001110 // Texbox shows -> 1110
MyVeryOwnByte = 01010101 // Texbox shows -> 1010101
MyVeryOwnByte = 00000000 // Texbox shows -> <Empty>
MyVeryOwnByte = 00000001 // Texbox shows -> 1

Je veux afficher les 8 chiffres.

33
demandé sur Hooch 2011-01-28 17:35:27

4 réponses

Convert.ToString(MyVeryOwnByte, 2).PadLeft(8, '0');

Cela va remplir l'espace vide à gauche '0', pour un total de 8 caractères dans la chaîne

65
répondu WraithNath 2011-01-28 14:40:32

La façon dont vous le faites dépend de la façon dont vous voulez que votre sortie ressemble.

Si vous voulez juste "00011011", utilisez une fonction comme celle-ci:

static string Pad(byte b)
{
    return Convert.ToString(b, 2).PadLeft(8, '0');
}

Si vous voulez une sortie comme "00011011", utilisez une fonction comme celle-ci:

static string PadBold(byte b)
{
    string bin = Convert.ToString(b, 2);
    return new string('0', 8 - bin.Length) + "<b>" + bin + "</b>";
}

Si vous voulez une sortie comme "0001 1011", une fonction comme celle - ci pourrait être meilleure:

static string PadNibble(byte b)
{
    return Int32.Parse(Convert.ToString(b, 2)).ToString("0000 0000");
}
10
répondu Gabe 2011-01-28 16:32:32

Pad la chaîne avec des zéros. Dans ce cas, il est PadLeft(length, characterToPadWith). Méthodes d'extension très utiles. PadRight() est une autre méthode utile.

1
répondu Gregory A Beamer 2011-01-28 14:42:03

, Vous pouvez créer une méthode d'extension:

public static class ByteExtension
{
    public static string ToBitsString(this byte value)
    {
        return Convert.ToString(value, 2).PadLeft(8, '0');
    }
}
0
répondu Mariusz Jamro 2018-09-06 08:22:23