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.
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
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");
}
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.
, 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');
}
}