Tcl - Operadores bit a bit

Los operadores Bitwise admitidos por el lenguaje Tcl se enumeran en la siguiente tabla. Asumir variableA tiene 60 y variable B tiene 13, entonces -

Operador Descripción Ejemplo
Y El operador AND binario copia un bit al resultado si existe en ambos operandos. (A & B) dará 12, que es 0000 1100
| El operador OR binario copia un bit si existe en cualquiera de los operandos. (A | B) dará 61, que es 0011 1101
^ El operador binario XOR copia el bit si está configurado en un operando pero no en ambos. (A ^ B) dará 49, que es 0011 0001
<< Operador binario de desplazamiento a la izquierda. El valor de los operandos de la izquierda se mueve a la izquierda el número de bits especificado por el operando de la derecha. Un << 2 dará 240, que es 1111 0000
>> Operador de cambio a la derecha binario. El valor de los operandos de la izquierda se mueve hacia la derecha el número de bits especificado por el operando de la derecha. A >> 2 dará 15, que es 0000 1111

Ejemplo

Pruebe el siguiente ejemplo para comprender todos los operadores bit a bit disponibles en el lenguaje Tcl:

#!/usr/bin/tclsh

set a 60  ;# 60 = 0011 1100   
set b 13  ;# 13 = 0000 1101 

set c [expr $a & $b] ;# 12 = 0000 1100 
puts "Line 1 - Value of c is $c\n"

set c [expr $a | $b;] ;# 61 = 0011 1101 
puts "Line 2 - Value of c is $c\n"

set c [expr $a ^ $b;] ;# 49 = 0011 0001 
puts "Line 3 - Value of c is $c\n"

set c [expr $a << 2] ;# 240 = 1111 0000 
puts "Line 4 - Value of c is $c\n"

set c [expr $a >> 2] ;# 15 = 0000 1111 
puts "Line 5 - Value of c is $c\n"

Cuando compila y ejecuta el programa anterior, produce el siguiente resultado:

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