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.