Tcl - Operadores Bitwise
Os operadores bit a bit suportados pela linguagem Tcl estão listados na tabela a seguir. Assumir variávelA detém 60 e variável B detém 13, então -
Operador | Descrição | Exemplo |
---|---|---|
E | O operador binário AND copia um bit para o resultado se ele existir em ambos os operandos. | (A e B) dará 12, que é 0000 1100 |
| | O operador binário OR copia um bit se ele existir em qualquer operando. | (A | B) dará 61, que é 0011 1101 |
^ | O operador binário XOR copia o bit se estiver definido em um operando, mas não em ambos. | (A ^ B) dará 49, que é 0011 0001 |
<< | Operador binário de deslocamento à esquerda. O valor dos operandos à esquerda é movido para a esquerda pelo número de bits especificado pelo operando à direita. | Um << 2 dará 240, que é 1111 0000 |
>> | Operador binário de deslocamento à direita. O valor dos operandos à esquerda é movido para a direita pelo número de bits especificado pelo operando à direita. | Um >> 2 dará 15, que é 0000 1111 |
Exemplo
Tente o exemplo a seguir para entender todos os operadores bit a bit disponíveis na linguagem 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"
Quando você compila e executa o programa acima, ele produz o seguinte 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