it-swarm.com.de

Byte in Binärzeichenfolge C # - Zeigt alle 8 Ziffern an

Ich möchte ein Byte in der Textbox anzeigen. Jetzt benutze ich:

Convert.ToString(MyVeryOwnByte, 2);

Wenn das Byte jedoch 0 ist, werden diese 0 berechnet. __ Beispiel:

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

Ich möchte alle 8 Ziffern anzeigen.

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

Dadurch wird der leere Bereich links mit '0' gefüllt, sodass insgesamt 8 Zeichen in der Zeichenfolge angezeigt werden

66
WraithNath

Wie Sie das tun, hängt davon ab, wie Ihre Ausgabe aussehen soll.

Wenn Sie nur "00011011" möchten, verwenden Sie eine Funktion wie diese:

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

Wenn Sie die Ausgabe wie "000" wünschen11011", benutze eine Funktion wie diese:

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

Wenn Sie eine Ausgabe wie "0001 1011" wünschen, könnte eine Funktion wie diese besser sein:

static string PadNibble(byte b)
{
    return Int32.Parse(Convert.ToString(b, 2)).ToString("0000 0000");
}
10
Gabe

Füllen Sie die Zeichenfolge mit Nullen auf. In diesem Fall ist es PadLeft(length, characterToPadWith). Sehr nützliche Erweiterungsmethoden. PadRight() ist eine andere nützliche Methode.

1

Sie können eine Erweiterungsmethode erstellen:

public static class ByteExtension
{
    public static string ToBitsString(this byte value)
    {
        return Convert.ToString(value, 2).PadLeft(8, '0');
    }
}
0
Mariusz Jamro