Perl 位运算符示例


Perl 语言支持以下按位运算符,假设 $a = 60;$b = 13 −

先生。 运算符及描述
1

&

如果两个操作数中都存在,则二进制 AND 运算符会将一位复制到结果中。

示例- ($a & $b) 将给出 12,即 0000 1100

2

|

如果某个操作数中存在某个位,则二元“或”运算符会复制该位。

示例- ($a | $b) 将给出 61,即 0011 1101

3

^

如果在一个操作数中设置了该位,但不是在两个操作数中都设置了该位,则二进制 XOR 运算符会复制该位。

示例- ($a ^ $b) 将给出 49,即 0011 0001

4

二进制补码运算符是一元的,具有“翻转”位的效果。

示例- (~$a ) 将给出 -61,由于有符号二进制数,它是 2 的补码形式的 1100 0011。

5

<<

二进制左移运算符。左操作数的值向左移动右操作数指定的位数。

示例- $a << 2 将给出 240,即 1111 0000

6

>>

二进制右移运算符。左操作数的值向右移动右操作数指定的位数。

示例- $a >> 2 将给出 15,即 0000 1111

例子

尝试以下示例来了解 Perl 中可用的所有按位运算符。将以下 Perl 程序复制并粘贴到 test.pl 文件中并执行该程序。

#!/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";

执行上述代码时,会产生以下结果 -

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
perl_operators.htm