Comprendre l'opérateur binaire OR en C#
Les opérations binaires en C# sont essentielles pour effectuer des manipulations bit à bit, notamment lorsqu'on travaille avec des drapeaux, des permissions et des traitements de données de bas niveau. L'un des opérateurs binaires fondamentaux est le OU (|) Dans sa vidéo Binaire en C# : L'opérateur binaire OR en 10 minutes ou moins, Tim Corey décompose le fonctionnement de l'opérateur binaire OR en C# et ses applications pratiques. Passons en revue ses explications étape par étape.
Introduction à l'opérateur binaire OR
Tim commence la vidéo en poursuivant sa série sur la compréhension des opérations binaires en C#. Cette leçon, la cinquième de la série, est consacrée à l'opérateur OR. Il prépare un scénario de base où il a deux valeurs entières, Val1 et Val2, représentées en format binaire. Ces valeurs sont imprimées sur la console afin de fournir une représentation visuelle claire de la manière dont elles apparaissent en binaire.
Compréhension de l'opération OR bitwise
À ce stade, Tim explique ce que fait l'opérateur OR dans une comparaison binaire. Il précise que l'opérateur OR compare chaque bit de deux valeurs binaires à des positions correspondantes. Si l'un des bits est 1, le résultat à cette position sera 1. Si les deux bits sont 0, le résultat sera 0.
Pour le démontrer, il donne un exemple comparant deux valeurs :
Val1 = 1101(représentation binaire)Val2 = 0010(représentation binaire)
Tim souligne qu'à chaque position de bit, si au moins l'une des valeurs a 1, le bit résultant sera 1. Sinon, il reste 0.
Implementing OR in C
Tim passe à l'écriture du code réel pour effectuer l'opération OR. Il affecte le résultat de l'opération OR à une nouvelle variable en utilisant le single pipe (|) :
// 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
Explication
- Les valeurs binaires sont définies en utilisant un préfixe
0bqui facilite l'entrée binaire directe en C#. - Le résultat de l'opération OR bit à bit est stocké dans la variable
result. - Le
Convert.ToString(result, toBase: 2)convertit le résultat entier en une chaîne représentant son format binaire, afin qu'il puisse être affiché.
Tim fait une distinction importante ici : dans les expressions logiques à l'intérieur des déclarations if, nous utilisons || for logical OR, whereas in bitwise operations, we use a single | pour opérer sur des bits individuels.
Comprendre le résultat
Après avoir effectué l'opération OR, Tim imprime le résultat sur la console. Le résultat démontre comment OR fonctionne au niveau des bits :
- `1101| 0010 = 1111
Chaque bit dans le résultat suit la règle : si soit Val1 ou Val2 a un 1, le résultat est 1. Cela permet de visualiser clairement comment OR combine deux nombres binaires.
Modification des valeurs d'entrée
Pour renforcer le concept, Tim modifie Val2 pour voir comment l'opérateur OR réagit à différentes entrées. Il change Val2 à 1010 et exécute à nouveau l'opération. Le résultat doit rester cohérent avec la logique du bloc opératoire :
- `1101| 1010 = 1111
Tim souligne que tant qu'au moins l'un des nombres a un 1 à une position donnée, le résultat à cette position sera également 1.
Or logique vs OR bitwise
Tim revient brièvement sur la différence entre le OU logique (||) and bitwise OR (|) Le OU logique est utilisé pour les conditions booléennes, telles que :
// 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
}
Le OU binaire, quant à lui, est utilisé pour les opérations binaires au niveau du bit, comme nous l'avons vu dans cette leçon.
Applications pratiques de Bitwise OR (en anglais)
Tim conclut en discutant de quelques scénarios pratiques dans lesquels le bitwise OR est utile. L'un des cas d'utilisation courants est le travail avec des paramètres basés sur des drapeaux. Par exemple, si vous avez différents drapeaux de permission stockés sous forme de valeurs binaires, OR peut être utilisé pour les combiner efficacement.
Par exemple, dans un système basé sur les drapeaux :
READ_PERMISSION = 0001WRITE_PERMISSION = 0010EXECUTE_PERMISSION = 0100
Si un utilisateur a besoin de permissions de lecture et d'écriture, nous pouvons les combiner en utilisant 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 souligne que OR est particulièrement utile pour gérer de telles combinaisons de drapeaux sans affecter les valeurs existantes.
Conclusion
Alors que la vidéo se termine, Tim résume les points clés :
- Le OU binaire (
|) compare les bits correspondants dans deux nombres. - Si l'un des bits est
1, le résultat est1. - Cet opérateur est couramment utilisé pour combiner efficacement des drapeaux et des paramètres.
- Il diffère du OU logique (
||), qui est utilisé pour les expressions booléennes.
En suivant les explications et les exemples de Tim, nous pouvons acquérir une solide compréhension du fonctionnement de l'opérateur OR binaire dans C# et des endroits où il peut être appliqué efficacement.


