Que sont les opérateurs bitwise?

Dans un programme informatique, les opérateurs au niveau du bit sont des opérateurs permettant de manipuler des modèles de bits dans des expressions. Les bits AND, OU, OU exclusif (XOR), NOT, le décalage droit et le décalage gauche sont des opérations courantes. La plupart des langages de programmation informatique incluent ces six opérateurs. Ils sont souvent utilisés pour définir, effacer ou basculer des bits individuels dans des programmes qui contrôlent le matériel informatique. Les opérateurs binaires sont également fréquemment utilisés dans les algorithmes de cryptage et de compression de données.

Les opérateurs au niveau des bits communs sont généralement représentés symboliquement dans des langages de programmation tels que C, C ++ et Java. Ils sont utilisés dans les expressions tout comme les opérateurs arithmétiques, comme les signes plus ou moins. L'opérateur au niveau du bit AND est représenté avec l'esperluette & , OU avec le tuyau | et XOR avec le caret ^ . NOT, également appelé opérateur du complément, est indiqué par un tilde ~ .

L'opérateur de quart de droite utilise un double caret pointant vers la droite >> . En revanche, le décalage gauche est indiqué par un double caret à gauche << . Java inclut une autre opération de décalage à droite, illustrée par un triple caret >>> pointant vers la droite.

Les opérateurs au niveau des bits appliquent une opération logique à chaque paire de bits de leurs opérandes. NON, le décalage droit et le décalage gauche n'ont qu'un seul opérande vrai; la deuxième valeur dans les opérations de décalage est le nombre de bits. Pour mieux comprendre le fonctionnement des opérateurs au niveau des bits, une personne peut visualiser ses opérandes sous forme de chiffres binaires. Par exemple, l'opérateur de complément bascule chaque bit de son opérande unique vers l'état opposé. Un devient zéro et un zéro devient un. Le complément de la valeur binaire à 8 bits 00110101 est 11001010.

L'opérateur AND a deux opérandes. Peu à peu, une opération AND logique est effectuée à l'aide d'un bit correspondant à chaque opérande. Le résultat de chaque opération de bit est placé dans cette position de bit du résultat global. Par exemple, l'opérateur AND traitera le bit 7 d'un opérande avec le bit 7 de l'autre opérande. Le résultat sera stocké dans le bit 7 du résultat global.

Dans une opération AND, les deux bits d'opérande doivent être un pour que le résultat soit égal à un, sinon le résultat est zéro. Par exemple, si les valeurs binaires à 8 bits des opérandes sont 00110101 et 11110000, le résultat sera 00110000. Une utilisation courante de l'opérateur AND consiste à mettre à zéro des bits particuliers dans le résultat. Ceci est fait en plaçant des zéros à ces positions de bits dans l'un des opérandes.

Dans une opération OR, les deux bits d'opérande doivent avoir la valeur zéro pour que le résultat soit égal à zéro; sinon, le résultat est un. Une utilisation courante de l’opérateur OU est de définir certains bits du résultat sur 1. Ceci est fait en plaçant ceux-ci dans ces positions de bits dans l'un des opérandes. Pour l'opération XOR, le résultat est zéro si les deux bits d'opérande sont à zéro ou si les deux bits d'opérande sont à un - sinon, le résultat est à un.

Décalage à gauche et décalage à droite déplacent les bits de l'opérande vers la gauche ou la droite du nombre de positions de bits spécifié. Un décalage logique à droite déplace un zéro dans le bit le plus à gauche dans le cadre du décalage. Un décalage arithmétique à droite copie le bit le plus à gauche - le bit de signe - avant le décalage dans la même position après le décalage. Le bit original est également décalé avec le reste. L'un ou l'autre type de décalage à gauche déplace un zéro dans le bit le plus à droite.

Lorsqu'un opérande est décalé à droite, le bit le plus à droite avant le décalage est simplement jeté. De même, le bit le plus à gauche avant un décalage à gauche est supprimé. Il ne s'enroule pas à l'autre bout de l'opérande.

Les opérations de décalage binaire dépendent de la langue et de la mise en œuvre. Par exemple, en C et C ++, >> et << effectuent des décalages logiques si l'opérande est un entier non signé. Si l'opérande est un entier signé, il est probable qu'un décalage arithmétique sera effectué à la place. En Java, tous les opérandes sont considérés comme signés et les décalages arithmétiques sont toujours effectués avec >> et << . L'opérateur >>> est utilisé pour un décalage à droite logique, mais il est toujours possible d'effectuer accidentellement un décalage à droite arithmétique sans transtypage minutieux.

Des complications peuvent également survenir lorsque les opérandes ont des longueurs de bits différentes ou lorsque certains sont signés et d'autres non signés. Les opérateurs binaires et les constantes numériques au milieu d'une expression complexe peuvent ne pas être évalués comme prévu. Il faut prendre soin de spécifier la taille et la nature signée / non signée de chaque quantité dans l'expression. Cela peut être fait avec une conversion minutieuse de la conversion ou des affectations provisoires à des types de variables spécifiques dans le code du programme.

DANS D'AUTRES LANGUES

Cet article vous a‑t‑il été utile ? Merci pour les commentaires Merci pour les commentaires

Comment pouvons nous aider? Comment pouvons nous aider?