Saltar al pie de página
Iron Academy Logo
Aprender C#
Aprender C#

Otras categorías

Comprender el operador binario OR de C#

Tim Corey
5m 54s

Las operaciones binarias en C# son esenciales para manejar las manipulaciones bit a bit, especialmente cuando se trabaja con indicadores, permisos y procesamiento de datos de bajo nivel. Uno de los operadores binarios fundamentales es el OR (|operador). En su vídeo Binary in C#: El operador binario OR en 10 minutos o menos, Tim Corey desglosa cómo funciona el operador binario OR en C# y sus aplicaciones prácticas. Veamos sus explicaciones paso a paso.

Introducción al operador binario OR

Tim comienza el vídeo continuando su serie sobre la comprensión de las operaciones binarias en C#. Esta lección, la quinta de la serie, se centra en el operador OR. Él establece un escenario básico donde tiene dos valores enteros, Val1 y Val2, representados en formato binario. Estos valores se imprimen en la consola para ofrecer una representación visual clara de cómo aparecen en binario.

Entendiendo el OR Bitwise

En este punto, Tim explica qué hace el operador OR en una comparación binaria. Aclara que el operador OR compara cada bit de dos valores binarios en posiciones correspondientes. Si cualquiera de los bits es 1, el resultado en esa posición será 1. Si ambos bits son 0, el resultado será 0.

Para demostrarlo, recorre un ejemplo en el que se comparan dos valores:

  • Val1 = 1101 (representación binaria)
  • Val2 = 0010 (representación binaria)

Tim enfatiza que en cada posición de bit, si al menos uno de los valores tiene 1, el bit resultante será 1. De lo contrario, permanece 0.

Implementing OR in C

Tim pasa a escribir el código real para realizar la operación OR. Asigna el resultado de la operación OR a una nueva variable utilizando la tubería única (|operador):

// Define two binary values as integers
int Val1 = 0b1101; // Binary representation: 1101
int Val2 = 0b0010; // Binary representation: 0010

// Perform the bitwise OR operation
int result = Val1 | Val2;

// Print the result to the console
Console.WriteLine(Convert.ToString(result, toBase: 2)); // Output: 1111 in binary
// Define two binary values as integers
int Val1 = 0b1101; // Binary representation: 1101
int Val2 = 0b0010; // Binary representation: 0010

// Perform the bitwise OR operation
int result = Val1 | Val2;

// Print the result to the console
Console.WriteLine(Convert.ToString(result, toBase: 2)); // Output: 1111 in binary

Explicación

  • Los valores binarios se definen utilizando un prefijo 0b que facilita la entrada binaria directa en C#.
  • El resultado de la operación OR a nivel de bits se almacena en la variable result.
  • El Convert.ToString(result, toBase: 2) convierte el resultado entero en una cadena que representa su formato binario, para que pueda ser mostrado.

Tim hace una distinción importante aquí: en expresiones lógicas dentro de declaraciones if, usamos || for logical OR, whereas in bitwise operations, we use a single | para operar en bits individuales.

Entendiendo el resultado

Después de ejecutar la operación OR, Tim imprime el resultado en la consola. El resultado demuestra cómo funciona OR a nivel de bits:

  • 1101|0010 = 1111

Cada bit en el resultado sigue la regla: si Val1 o Val2 tiene un 1, el resultado es 1. Esto proporciona una visualización clara de cómo OR combina dos números binarios.

Modificación de valores de entrada

Para reforzar el concepto, Tim modifica Val2 para ver cómo reacciona el operador OR a diferentes entradas. Él cambia Val2 a 1010 y ejecuta la operación de nuevo. El resultado debe ser coherente con la lógica OR:

  • 1101|1010 = 1111

Tim señala que mientras al menos uno de los números tenga un 1 en una posición dada, el resultado en esa posición también será 1.

O lógico vs. O a nivel de bits

Tim repasa brevemente la diferencia entre OR lógico (||) and bitwise OR (|). OR lógico se utiliza para condiciones booleanas, como:

// Example of logical OR in a conditional statement
if (condition1 || condition2) 
{
    // Execute if either condition1 or condition2 is true
}
// Example of logical OR in a conditional statement
if (condition1 || condition2) 
{
    // Execute if either condition1 or condition2 is true
}

Bitwise OR, por otro lado, se utiliza para operaciones binarias a nivel de bit, como se ha visto en esta lección.

Aplicaciones prácticas de Bitwise OR

Tim concluye comentando algunos casos prácticos en los que resulta útil la función bitwise OR. Uno de los casos de uso común es trabajar con configuraciones basadas en indicadores. Por ejemplo, si tiene diferentes indicadores de permiso almacenados como valores binarios, OR puede utilizarse para combinarlos de forma eficiente.

Por ejemplo, en un sistema basado en banderas:

  • READ_PERMISSION = 0001
  • WRITE_PERMISSION = 0010
  • EXECUTE_PERMISSION = 0100

Si un usuario necesita tanto permisos de lectura como de escritura, podemos combinarlos utilizando OR:

// Define permission flags as constants
const int READ_PERMISSION = 0b0001;
const int WRITE_PERMISSION = 0b0010;

// Combine read and write permissions using bitwise OR
int userPermissions = READ_PERMISSION | WRITE_PERMISSION; // Result: 0011

// Print the user permissions in binary
Console.WriteLine(Convert.ToString(userPermissions, toBase: 2)); // Output: 0011
// Define permission flags as constants
const int READ_PERMISSION = 0b0001;
const int WRITE_PERMISSION = 0b0010;

// Combine read and write permissions using bitwise OR
int userPermissions = READ_PERMISSION | WRITE_PERMISSION; // Result: 0011

// Print the user permissions in binary
Console.WriteLine(Convert.ToString(userPermissions, toBase: 2)); // Output: 0011

Tim destaca que OR es especialmente útil para manejar estas combinaciones de indicadores sin afectar a los valores existentes.

Reflexiones finales

Al final del vídeo, Tim resume los puntos clave:

  • La combinación bitwise OR (|) compara los bits correspondientes de dos números.
  • Si alguno de los bits es 1, el resultado es 1.
  • Este operador se utiliza habitualmente para combinar indicadores y configuraciones de forma eficaz.
  • Se diferencia del OR lógico (||), que se utiliza para expresiones booleanas.

Siguiendo las explicaciones y los ejemplos de Tim, podemos adquirir una sólida comprensión de cómo funciona el operador OR binario en C# y dónde puede aplicarse de forma eficaz.

Hero Worlddot related to Comprender el operador binario OR de C#
Hero Affiliate related to Comprender el operador binario OR de C#

Gana más compartiendo lo que te gusta

¿Creas contenidos para desarrolladores que trabajan con .NET, C#, Java, Python o Node.js? ¡Convierte tu experiencia en un ingreso extra!

Equipo de soporte de Iron

Estamos disponibles online las 24 horas, 5 días a la semana.
Chat
Email
Llámame