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
5m 54s
As operações binárias em C# são essenciais para lidar com manipulações bit a bit, especialmente ao trabalhar com flags, permissões e processamento de dados de baixo nível. Um dos operadores binários fundamentais é o OU (|operador ). Em seu vídeo "Binário em C#: O operador OR binário em 10 minutos ou menos" , Tim Corey explica como o operador OR binário funciona em C# e suas aplicações práticas. Vamos analisar as explicações dele passo a passo.
Tim inicia o vídeo dando continuidade à sua série sobre como entender operações binárias em C#. Esta lição, a quinta da série, centra-se no operador OR. Ele configura um cenário básico onde tem dois valores inteiros, Val1 e Val2, representados em formato binário. Esses valores são impressos no console para fornecer uma representação visual clara de como eles aparecem em binário.
Nesse ponto, Tim explica o que o operador OR faz em uma comparação binária. Ele esclarece que o operador OR compara cada bit de dois valores binários em posições correspondentes. Se qualquer um dos bits for 1, o resultado nessa posição será 1. Se ambos os bits forem 0, o resultado será 0.
Para demonstrar isso, ele apresenta um exemplo comparando dois valores:
Val1 = 1101 (representação binária)Val2 = 0010 (representação binária)Tim enfatiza que, em cada posição de bit, se pelo menos um dos valores tiver 1, o bit resultante será 1. Caso contrário, permanece 0.
Tim passa então a escrever o código propriamente dito para realizar a operação OR. Ele atribui o resultado da operação OR a uma nova variável usando a barra vertical (|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
Dim Val1 As Integer = &B1101 ' Binary representation: 1101
Dim Val2 As Integer = &B0010 ' Binary representation: 0010
' Perform the bitwise OR operation
Dim result As Integer = Val1 Or Val2
' Print the result to the console
Console.WriteLine(Convert.ToString(result, toBase:=2)) ' Output: 1111 in binary0b, que facilita a entrada binária direta em C#.result.Convert.ToString(result, toBase: 2) converte o resultado inteiro em uma string que representa seu formato binário, para que possa ser exibido.Tim faz uma distinção importante: em expressões lógicas dentro de declarações if, usamos || for logical OR, whereas in bitwise operations, we use a single | para operar em bits individuais.
Após executar a operação OR, Tim imprime o resultado no console. O resultado demonstra como o operador OR funciona no nível de bits:
1101|0010 = 1111Cada bit no resultado segue a regra: se Val1 ou Val2 tiver um 1, o resultado é 1. Isso proporciona uma visualização clara de como o operador OR combina dois números binários.
Para reforçar o conceito, Tim modifica Val2 para ver como o operador OR reage a entradas diferentes. Ele altera Val2 para 1010 e executa a operação novamente. O resultado permanece consistente com a lógica OR:
1101|1010 = 1111Tim aponta que, enquanto um dos números tiver um 1 em uma dada posição, o resultado nessa posição também será 1.
Tim revisita brevemente a diferença entre o OU lógico (||) and bitwise OR (|). O operador lógico OU é usado para condições 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 OrElse condition2 Then
' Execute if either condition1 or condition2 is true
End IfPor outro lado, o OR bit a bit é usado para operações binárias em nível de bit, como visto nesta lição.
Tim conclui discutindo alguns cenários práticos onde o OR bit a bit é útil. Um dos casos de uso mais comuns é trabalhar com configurações baseadas em sinalizadores. Por exemplo, se você tiver diferentes sinalizadores de permissão armazenados como valores binários, o operador OR pode ser usado para combiná-los de forma eficiente.
Por exemplo, em um sistema baseado em bandeiras:
READ_PERMISSION = 0001WRITE_PERMISSION = 0010EXECUTE_PERMISSION = 0100Se um usuário precisar de permissões de leitura e gravação, podemos combiná-las usando o operador 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 READ_PERMISSION As Integer = &B0001
Const WRITE_PERMISSION As Integer = &B0010
' Combine read and write permissions using bitwise OR
Dim userPermissions As Integer = READ_PERMISSION Or WRITE_PERMISSION ' Result: 0011
' Print the user permissions in binary
Console.WriteLine(Convert.ToString(userPermissions, toBase:=2)) ' Output: 0011Tim destaca que o operador OR é particularmente útil ao lidar com combinações de indicadores sem afetar os valores existentes.
Ao final do vídeo , Tim resume os pontos principais:
|) compara os bits correspondentes em dois números.1, o resultado é 1.||), que é usado para expressões booleanas.Seguindo as explicações e exemplos de Tim, podemos obter uma compreensão sólida de como o operador OR binário funciona em C# e onde ele pode ser aplicado de forma eficaz.
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