Earn More by Sharing What You Love
Do you create content for developers working with .NET, C#, Java, Python, or Node.js? Turn your expertise into extra income!

Tim Corey
9m 43s
Les nombres binaires sont une partie essentielle de l'informatique, et comprendre comment travailler avec eux en C# est crucial pour gérer les opérations de bas niveau, les manipulations bitwise et le stockage efficace. Dans cet article, nous allons décomposer les concepts clés du stockage et de l'affichage des valeurs binaires en C#, en suivant la vidéo de Tim Corey, Binaire en C# : Stocker et afficher des valeurs binaires en 10 minutes ou moins.
Tim explique ce sujet de manière concise mais détaillée, ce qui le rend plus facile à comprendre. Parcourons pas à pas son explication et explorons le fonctionnement des valeurs binaires en C#.
Tim commence par répondre à la question centrale : comment stocker un nombre binaire en C# ? Il explique que les nombres binaires, tels que 0b101, représentent des valeurs en base 2 et sont stockés dans des variables entières.
Pour stocker une valeur binaire, Tim utilise la syntaxe suivante :
int binaryValue = 0b101; // Represents the decimal number 5Dim binaryValue As Integer = &B101 ' Represents the decimal number 5Ici, 0b est un préfixe qui indique à C# d'interpréter les chiffres suivants comme un nombre binaire. Tim souligne que 0b101 est équivalent à 5 en notation décimale.
Il note également qu'ajouter des zéros en tête (par exemple, 0b00000101) ne change pas la valeur. Le système l'interprète toujours comme 5, car ces zéros supplémentaires n'ont pas de signification numérique.
Une fois que nous avons stocké une valeur binaire, l'étape suivante consiste à l'afficher. Tim souligne un comportement intéressant : lorsque vous imprimez une valeur stockée en binaire, C# la convertit en décimal par défaut.
Par exemple :
Console.WriteLine($"Binary value is: {binaryValue}");
// Outputs: Binary value is: 5Console.WriteLine($"Binary value is: {binaryValue}")
' Outputs: Binary value is: 5Bien que binaryValue ait été stocké comme 0b101, la console affichera 5. Tim explique que C# fonctionne en base 10 par défaut lorsqu'il affiche des valeurs numériques.
Pour voir la valeur dans son format binaire, nous avons besoin d'une conversion.
Tim présente un moyen simple de formater un nombre entier en tant que chaîne binaire :
string binaryString = Convert.ToString(binaryValue, 2);
Console.WriteLine($"Binary representation: {binaryString}");
// Outputs: Binary representation: 101Dim binaryString As String = Convert.ToString(binaryValue, 2)
Console.WriteLine($"Binary representation: {binaryString}")
' Outputs: Binary representation: 101Il explique que Convert.ToString(value, 2) convertit un entier en sa représentation binaire sous forme de chaîne. Ainsi, si vous stockez 0b101, la console affichera désormais correctement 101 au lieu de 5.
Tim s'attaque ensuite à un problème qui se pose souvent lors de l'affichage de nombres binaires : leur formatage cohérent avec des zéros initiaux. Dans de nombreux cas, nous voulons qu'un nombre binaire apparaisse au format 8 bits (par exemple, 00000101 au lieu de simplement 101).
Il explique comment y parvenir en utilisant PadLeft :
string formattedBinary = binaryString.PadLeft(8, '0');
Console.WriteLine($"Formatted binary: {formattedBinary}");
// Outputs: Formatted binary: 00000101Dim formattedBinary As String = binaryString.PadLeft(8, "0"c)
Console.WriteLine($"Formatted binary: {formattedBinary}")
' Outputs: Formatted binary: 00000101Ici, PadLeft(8, '0') garantit que la chaîne binaire a toujours au moins 8 caractères, remplissant les espaces manquants avec des zéros. Cela est particulièrement utile lorsqu'il s'agit de valeurs binaires de la taille d'un octet.
Tim précise que les guillemets simples autour de '0' sont nécessaires car PadLeft fonctionne avec des caractères, pas des chaînes.
Un autre point important que Tim souligne est que vous n'avez pas besoin de saisir des nombres au format binaire (notation 0b) pour obtenir leur représentation binaire.
Par exemple, vous pouvez prendre un nombre décimal standard et le convertir en binaire :
int decimalNumber = 12;
string binaryRepresentation = Convert.ToString(decimalNumber, 2);
Console.WriteLine($"Binary equivalent of {decimalNumber} is {binaryRepresentation}");
// Outputs: Binary equivalent of 12 is 1100Dim decimalNumber As Integer = 12
Dim binaryRepresentation As String = Convert.ToString(decimalNumber, 2)
Console.WriteLine($"Binary equivalent of {decimalNumber} is {binaryRepresentation}")
' Outputs: Binary equivalent of 12 is 1100Ici, le nombre 12 est stocké comme un entier décimal, mais une fois converti, il affiche correctement 1100 en binaire.
Tim souligne que cette technique est utile pour le débogage et pour comprendre comment les nombres sont stockés au niveau des bits.
Tim aborde également la façon dont les valeurs binaires peuvent être stockées dans différents types de données numériques. Alors que les entiers (int) sont les plus courants, C# permet de stocker des valeurs binaires dans d'autres types comme uint (entier non signé) ou long.
Par exemple :
uint unsignedBinary = 0b1010; // 10 in decimal
long largeBinary = 0b1100110011; // A longer binary numberDim unsignedBinary As UInteger = &B1010 ' 10 in decimal
Dim largeBinary As Long = &B1100110011 ' A longer binary numberLa principale différence avec uint est qu'il ne supporte pas les valeurs négatives, tandis que long peut contenir des nombres beaucoup plus grands.
Tim note que la compréhension de ces distinctions aide à travailler avec des opérations de bas niveau telles que les décalages de bits et le masquage.
Tim conclut en résumant les principaux points à retenir :
0b.Convert.ToString(value, 2) aide à convertir les nombres en format binaire.PadLeft assure une représentation cohérente de la longueur des bits.Grâce à ces techniques, travailler avec des valeurs binaires en C# devient beaucoup plus facile et intuitif. Pour mieux comprendre le sujet, regardez sa vidéo complète.
Do you create content for developers working with .NET, C#, Java, Python, or Node.js? Turn your expertise into extra income!
Join our newsletter, you’ll get exclusive access on article updates. We value your privacy