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
Los números binarios son una parte esencial de la computación, y entender cómo trabajar con ellos en C# es crucial para manejar operaciones de bajo nivel, manipulaciones bit a bit y almacenamiento eficiente. En este artículo, desglosaremos los conceptos clave del almacenamiento y la visualización de valores binarios en C#, siguiendo el vídeo de Tim Corey, Binary in C#: Almacenamiento y visualización de valores binarios en 10 minutos o menos.
Tim explica este tema de forma concisa pero detallada, lo que facilita su comprensión. Vayamos paso a paso a través de su explicación y exploremos cómo funcionan los valores binarios en C#.
Tim comienza abordando la pregunta central: ¿cómo se almacena un número binario en C#? Él explica que los números binarios, como 0b101, representan valores en base 2 y se almacenan en variables enteras.
Para almacenar un valor binario, Tim muestra la siguiente sintaxis:
int binaryValue = 0b101; // Represents the decimal number 5Dim binaryValue As Integer = &B101 ' Represents the decimal number 5Aquí, 0b es un prefijo que indica a C# que interprete los dígitos siguientes como un número binario. Tim destaca que 0b101 es equivalente a 5 en notación decimal.
También menciona que agregar ceros a la izquierda (por ejemplo, 0b00000101) no cambia el valor. El sistema sigue interpretándolo como 5 porque esos ceros de más no tienen significado numérico.
Una vez que almacenamos un valor binario, el siguiente paso es mostrarlo. Tim señala un comportamiento interesante: cuando se imprime un valor almacenado en binario, C# lo convierte en decimal por defecto.
Por ejemplo:
Console.WriteLine($"Binary value is: {binaryValue}");
// Outputs: Binary value is: 5Console.WriteLine($"Binary value is: {binaryValue}")
' Outputs: Binary value is: 5Aunque binaryValue se almacenó como 0b101, la consola mostrará 5. Tim explica que C# trabaja con base 10 por defecto al mostrar valores numéricos.
Para ver el valor en su formato binario, necesitamos una conversión.
Tim presenta una forma sencilla de formatear un número entero como cadena binaria:
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: 101Él explica que Convert.ToString(value, 2) convierte un entero a su representación binaria como una cadena. De esta manera, si almacenas 0b101, la consola ahora mostrará correctamente 101 en lugar de 5.
A continuación, Tim aborda un problema que suele surgir al mostrar números binarios: darles un formato coherente con ceros a la izquierda. En muchos casos, queremos que un número binario aparezca en un formato de 8 bits (por ejemplo, 00000101 en lugar de solo 101).
Él explica cómo lograr esto utilizando 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: 00000101Aquí, PadLeft(8, '0') asegura que la cadena binaria siempre tenga al menos 8 caracteres, llenando cualquier espacio faltante con ceros. Esto es especialmente útil cuando se trata de valores binarios del tamaño de un byte.
Tim aclara que las comillas simples alrededor de '0' son necesarias porque PadLeft trabaja con caracteres, no con cadenas.
Otro punto importante que Tim menciona es que no necesitas introducir números en formato binario (notación 0b) para obtener su representación binaria.
Por ejemplo, se puede tomar un número decimal estándar y convertirlo a binario:
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 1100Aquí, el número 12 se almacena como un entero decimal, pero al convertirlo, se muestra correctamente 1100 en binario.
Tim destaca que esta técnica es útil para depurar y comprender cómo se almacenan los números a nivel de bits.
Tim también toca el tema de cómo los valores binarios se pueden almacenar en distintos tipos de datos numéricos. Aunque los enteros (int) son los más comunes, C# permite almacenar valores binarios en otros tipos como uint (entero sin signo) o long.
Por ejemplo:
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 diferencia clave con uint es que no admite valores negativos, mientras que long puede contener números mucho más grandes.
Tim señala que comprender estas distinciones ayuda a la hora de trabajar con operaciones de bajo nivel, como los desplazamientos de bits y el enmascaramiento.
Tim concluye resumiendo los puntos clave:
0b.Convert.ToString(value, 2) ayuda a convertir los números en formato binario.PadLeft asegura una representación consistente de longitud de bit.Con estas técnicas, trabajar con valores binarios en C# resulta mucho más fácil e intuitivo. Para comprender mejor el tema, vea su vídeo completo.
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