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