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
4m 48s
Las operaciones binarias en C# son cruciales para trabajar a nivel de bits, optimizar el rendimiento y comprender cómo se almacenan y manipulan los datos. Uno de estos operadores importantes es el NOT binario (~), que invierte todos los bits de un número. Para comprenderlo mejor, veamos el vídeo de Tim Corey "Binary in C#: El operador NOT binario en 10 minutos o menos"
Tim Corey comienza explicando que este vídeo forma parte de una serie sobre la comprensión de binarios en C#. Esta lección es la séptima de la serie y se centra en el operador binario NOT (~). Destaca que será una lección rápida, de menos de diez minutos, para que sea accesible y fácil de entender.
Tim retoca el código inicial para mejorar la legibilidad. En lugar de formatear manualmente los valores binarios, utiliza dos puntos (:) y un nombre de variable al final para garantizar la claridad. De este modo, la representación binaria del valor se mantiene al principio, lo que facilita las comparaciones.
Comienza declarando una variable entera:
// Declare an integer variable and assign it the value of 1.
int value = 1;' Declare an integer variable and assign it the value of 1.
Dim value As Integer = 1Esto plantea un escenario sencillo en el que se puede aplicar el operador NOT.
Tim presenta el operador ~ y muestra su sintaxis:
// Apply the Binary NOT operator to flip all bits of the integer 'value'.
int notValue = ~value;' Apply the Binary NOT operator to flip all bits of the integer 'value'.
Dim notValue As Integer = Not valueSeñala que en la mayoría de los teclados, la tilde (~) se encuentra en la esquina superior izquierda, debajo de la tecla Escape, junto a la tecla 1. Aclara que esto es diferente del signo de exclamación (!), que a menudo se denomina "carácter Bang" La tilde realiza la negación por bits, mientras que el signo de exclamación se utiliza para la negación lógica.
Tim explica que el operador NOT invierte todos los bits de la representación binaria del número. Eso significa:
Aplicando ~ a un número se obtiene su complemento a nivel de bits. Copia la salida de la consola para observar el resultado.
Tim ejecuta el programa y señala que el resultado parece mucho más largo de lo esperado. Por ejemplo, si valor = 1, la salida no es sólo 0, sino una secuencia más larga de unos seguida de los bits invertidos. Observa que el resultado para ~1 es:
// Observed output for ~1
11111111111111111111111111111110' Observed output for ~1
11111111111111111111111111111110¿Por qué?
Tim explica que este comportamiento se debe a que C# utiliza un entero con signo (int) de 32 bits. Dado que int en C# es en realidad Int32, consta de 32 bits. Cuando se realiza la operación NOT, se invierten los 32 bits, no solo la representación de un solo bit del 1.
Para hacerlo más claro, ajusta el formato de salida para mostrar explícitamente 32 bits:
// Convert the result of the NOT operation to a binary string representation,
// pad it to 32 bits, and print it.
Console.WriteLine(Convert.ToString(notValue, 2).PadLeft(32, '0'));' Convert the result of the NOT operation to a binary string representation,
' pad it to 32 bits, and print it.
Console.WriteLine(Convert.ToString(notValue, 2).PadLeft(32, "0"c))Esto muestra la representación binaria completa, lo que facilita ver cómo se invierten todos los bits.
En este punto, Tim aborda la pregunta: ¿Por qué es útil el operador NOT? Insinúa que su valor se hace más evidente cuando se trabaja con otras operaciones bit a bit, como:
Tim hace hincapié en que, antes de pasar a operaciones binarias más complejas, es importante comprender conceptos básicos como NOT. Asegura a los espectadores que una vez que comprendan las operaciones binarias, verán lo potentes y eficientes que pueden ser estas operaciones. La manipulación binaria permite a los desarrolladores:
Tim concluye dando una pista sobre la próxima lección, que se centrará en limpiar bits específicos utilizando el operador NOT y otras técnicas bit a bit. Subraya que dominar estos conceptos básicos es esencial para trabajar eficazmente con binarios en C#.
Tim Corey ofrece una explicación clara y práctica del operador NOT binario en C#. Al voltear todos los bits de un número, ~ es una herramienta fundamental para trabajar a nivel de bits. La comprensión de este operador sienta las bases para operaciones binarias más avanzadas, como el enmascaramiento y el desplazamiento de bits. Si te estás sumergiendo en la programación de bajo nivel o en la optimización del rendimiento, este es un concepto crucial que debes dominar.
Para más información, echa un vistazo al vídeo completo de Tim Corey y a su serie sobre binarios en C#
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