Ejemplo de operadores bit a bit de Perl

Existen los siguientes operadores Bitwise compatibles con el lenguaje Perl, suponga que si $ a = 60; y $ b = 13 -

No Señor. Operador y descripción
1

&

El operador AND binario copia un bit al resultado si existe en ambos operandos.

Example - ($ a & $ b) dará 12 que es 0000 1100

2

|

El operador OR binario copia un bit si existe en otro operando.

Example - ($ a | $ b) dará 61 que es 0011 1101

3

^

El operador binario XOR copia el bit si está configurado en un operando pero no en ambos.

Example - ($ a ^ $ b) dará 49 que es 0011 0001

4

~

El operador de complemento binario es unario y tiene el efecto de "voltear" bits.

Example - (~ $ a) dará -61 que es 1100 0011 en forma de complemento a 2 debido a un número binario con signo.

5

<<

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.

Example - $ a << 2 dará 240 que es 1111 0000

6

>>

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.

Example - $ a >> 2 dará 15 que es 0000 1111

Ejemplo

Pruebe el siguiente ejemplo para comprender todos los operadores bit a bit disponibles en Perl. Copie y pegue el siguiente programa Perl en el archivo test.pl y ejecute este programa.

#!/usr/local/bin/perl

use integer;
 
$a = 60;
$b = 13;

print "Value of \$a = $a and value of \$b = $b\n";

$c = $a & $b;
print "Value of \$a & \$b = $c\n";

$c = $a | $b;
print "Value of \$a | \$b = $c\n";

$c = $a ^ $b;
print "Value of \$a ^ \$b = $c\n";

$c = ~$a;
print "Value of ~\$a = $c\n";

$c = $a << 2;
print "Value of \$a << 2 = $c\n";

$c = $a >> 2;
print "Value of \$a >> 2 = $c\n";

Cuando se ejecuta el código anterior, produce el siguiente resultado:

Value of $a = 60 and value of $b = 13
Value of $a & $b = 12
Value of $a | $b = 61
Value of $a ^ $b = 49
Value of ~$a = -61
Value of $a << 2 = 240
Value of $a >> 2 = 15