Que sont les opérateurs bitwise?

Dans un programme informatique, les opérateurs bitwise sont des opérateurs pour manipuler les modèles de bits dans les expressions. Dans le sens bit et, ou, exclusif ou (xOR), et non, le quart de droite et le décalage gauche sont des opérations communes. La plupart des langages de programmation informatique incluent les six de ces opérateurs. Ils sont souvent utilisés pour définir, effacer ou renverser des bits individuels dans des programmes qui contrôlent le matériel informatique. Les opérateurs bitwise sont également fréquemment utilisés dans les algorithmes de chiffrement et de compression des données.

Les opérateurs courants sont généralement représentés symboliquement dans les langages de programmation comme C, C ++ et Java. Ils sont utilisés dans les expressions comme le seraient les opérateurs arithmétiques comme le plus ou les signes moins. L'opérateur bitwise et est représenté avec l'ampesand & , ou avec le tuyau | et xor avec le caret ^ . Non, également connu sous le nom d'opérateur de complément, est indiqué par un Tilde ~ .

L'opérateur de shift droit utilise un double transpareur pointant vers le droit >> . En revanche,Le décalage gauche est indiqué par un double carton de porte-greffe à gauche <<< / em>. Java comprend une autre opération de décalage à droite, illustrée avec un triple transport à droite >>> .

Les opérateurs bitwise appliquent une opération logique à chaque paire de bits de leurs opérandes. Non, le changement droit et le quart de gauche n'ont qu'un seul véritable opérande; La deuxième valeur dans les opérations de changement est le nombre de bits. Pour mieux comprendre le fonctionnement des opérateurs de bit sur le sens du bit, un individu peut visualiser ses opérandes en chiffres binaires. Par exemple, l'opérateur de complément retourne chaque bit de son opérande unique à l'état opposé. Un devient un zéro et un zéro devient un. Le complément de la valeur binaire 8 bits 00110101 est 11001010.

L'opérateur a deux opérandes. Bit à bit, une logique et une opération sont effectuées en utilisant un bit correspondant à partir de chaque opérande. Le résultat de chaque opération de bit est placé dans cette position de bits de l'ensemblerésultat. Par exemple, l'opérateur et l'opérateur 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 et une opération, les deux bits d'opérande doivent être ceux pour que le résultat soit un, sinon le résultat est nul. Par exemple, si les valeurs binaires 8 bits des opérandes sont de 00110101 et 11110000, le résultat sera 00110000. Une utilisation courante de l'opérateur est à zéro des bits particuliers dans le résultat. Cela se fait en plaçant des zéros dans ces positions de bits dans l'un des opérandes.

Dans une ou opération, les deux bits d'opérande doivent être des zéros pour que le résultat soit nul; Sinon, le résultat en est un. Une utilisation courante de l'opérateur OR consiste à définir certains bits du résultat à ceux. Cela se fait en plaçant ceux dans ces positions de bits dans l'un des opérandes. Pour l'opération XOR, le résultat est nul si les deux bits d'opérande sont nul ou si les deux bits d'opérande en sont un - autrement, le résultat en est un.

Nd Shift à droite Déplacez les bits dans l'opérande gauche ou à droite par le nombre spécifié de positions de bits. Un décalage à droite logique déplace un zéro dans le bit le plus à gauche dans le cadre du décalage. Un décalage arithmétique droit copie le bit le plus à gauche - le bit de signe - avant le changement dans la même position après le décalage. Le bit d'origine est également décalé avec le reste. L'un ou l'autre type de changement de 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 changement est simplement jeté. De même, le bit le plus à gauche avant un changement de gauche est éliminé. Il ne se termine pas à l'autre extrémité de l'opérande.

Les opérations de décalage bitwise sont dépendantes de la langue et de la mise en œuvre. Par exemple, en C et C ++, >> et <<<< / em> effectuez des changements logiques si l'opérande est un entier non signé. Si l'opérande est un entier signé, il est probable qu'un changement arithmétique sera effectué à la place. En Java, tous les opérandes sont considérés comme signés et l'arithmeLes décalages en éléments sont toujours effectués avec >> et <<< . L'opérateur >>> est utilisé pour un changement de droite logique, mais il est toujours possible de faire accidentellement un décalage droit arithmétique à la place sans dactylographie prudente.

Les complications peuvent également survenir lorsque les opérandes ont des longueurs de bits différentes ou lorsque certains sont signés et que certains ne sont pas signés. Les opérateurs 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 dactylographie prudente ou des affectations provisoires à des types de variables spécifiques dans le code du programme.

DANS D'AUTRES LANGUES