Perl 位运算符示例

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

序号 运算符 & 描述
1

&

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

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

2

|

如果存在于其他操作数中,则二进制 OR 运算符会复制一点。

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

3

^

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

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

4

~

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

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

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 运算符