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。

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
广告
© . All rights reserved.