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