Tcl - 位運算子



Tcl 語言支援的位運算子列在下表中。假設變數A為 60,變數B為 13,則:

運算子 描述 示例
& 二進位制 AND 運算子:如果位同時存在於兩個運算元中,則將其複製到結果中。 (A & B) 將得到 12,即 0000 1100
| 二進位制 OR 運算子:如果位存在於任一運算元中,則將其複製。 (A | B) 將得到 61,即 0011 1101
^ 二進位制 XOR 運算子:如果位在一個運算元中設定,但在另一個運算元中未設定,則將其複製。 (A ^ B) 將得到 49,即 0011 0001
<< 二進位制左移運算子:左運算元的值向左移動由右運算元指定的位數。 A << 2 將得到 240,即 1111 0000
>> 二進位制右移運算子:左運算元的值向右移動由右運算元指定的位數。 A >> 2 將得到 15,即 0000 1111

示例

嘗試以下示例以瞭解 Tcl 語言中所有可用的位運算子:

#!/usr/bin/tclsh

set a 60  ;# 60 = 0011 1100   
set b 13  ;# 13 = 0000 1101 

set c [expr $a & $b] ;# 12 = 0000 1100 
puts "Line 1 - Value of c is $c\n"

set c [expr $a | $b;] ;# 61 = 0011 1101 
puts "Line 2 - Value of c is $c\n"

set c [expr $a ^ $b;] ;# 49 = 0011 0001 
puts "Line 3 - Value of c is $c\n"

set c [expr $a << 2] ;# 240 = 1111 0000 
puts "Line 4 - Value of c is $c\n"

set c [expr $a >> 2] ;# 15 = 0000 1111 
puts "Line 5 - Value of c is $c\n"

編譯並執行上述程式後,將產生以下結果:

Line 1 - Value of c is 12

Line 2 - Value of c is 61

Line 3 - Value of c is 49

Line 4 - Value of c is 240

Line 5 - Value of c is 15
tcl_operators.htm
廣告
© . All rights reserved.