Go - Opérateurs au niveau du bit

Les opérateurs Bitwise pris en charge par le langage Go sont répertoriés dans le tableau suivant. Supposons que la variable A a 60 et la variable B 13, alors -

Opérateur La description Exemple
& L'opérateur binaire AND copie un bit dans le résultat s'il existe dans les deux opérandes. (A & B) donnera 12, soit 0000 1100
| L'opérateur OR binaire copie un bit s'il existe dans l'un ou l'autre des opérandes. (A | B) donnera 61, soit 0011 1101
^ L'opérateur XOR binaire copie le bit s'il est défini dans un opérande mais pas dans les deux. (A ^ B) donnera 49, soit 0011 0001
<< Opérateur de décalage binaire gauche. La valeur des opérandes de gauche est déplacée vers la gauche du nombre de bits spécifié par l'opérande de droite. Un << 2 donnera 240, soit 1111 0000
>> Opérateur de décalage binaire vers la droite. La valeur des opérandes de gauche est déplacée vers la droite du nombre de bits spécifié par l'opérande de droite. Un >> 2 donnera 15, soit 0000 1111

Exemple

Essayez l'exemple suivant pour comprendre tous les opérateurs binaires disponibles dans le langage de programmation Go -

package main

import "fmt"

func main() {
   var a uint = 60	/* 60 = 0011 1100 */  
   var b uint = 13	/* 13 = 0000 1101 */
   var c uint = 0          

   c = a & b       /* 12 = 0000 1100 */ 
   fmt.Printf("Line 1 - Value of c is %d\n", c )

   c = a | b       /* 61 = 0011 1101 */
   fmt.Printf("Line 2 - Value of c is %d\n", c )

   c = a ^ b       /* 49 = 0011 0001 */
   fmt.Printf("Line 3 - Value of c is %d\n", c )

   c = a << 2     /* 240 = 1111 0000 */
   fmt.Printf("Line 4 - Value of c is %d\n", c )

   c = a >> 2     /* 15 = 0000 1111 */
   fmt.Printf("Line 5 - Value of c is %d\n", c )
}

Lorsque vous compilez et exécutez le programme ci-dessus, il produit le résultat suivant -

Line 1 - Value of c is 12
Line 2 - Value of c is 61
Line 3 - Value of c is 49
Line 4 - Value of c is 240
Line 5 - Value of c is 15