在前面已經討論了位運算符,移位運算符對二進位值執行移位操作。在進入移位運算符之前,讓我們瞭解位操作。
按位運算符處理位並執行逐位操作。 &
,|
和^
的真值表如下:
假設A = 60
;而B = 13
; 如果以二進位格式表示,它們將如下所示:
A = 0011 1100
B = 0000 1101
-----------------
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~A = 1100 0011
前面已經看到VB.Net支持的按位運算符是:And
,Or
,Xor
和Not
。移位運算符分別是:>>
和<<
表示左移和右移。
假設變數A = 60
,變數B = 13
,那麼:
運算符 | 描述 | 說明 |
---|---|---|
And |
如果在兩個運算元中都存在,則按位AND 運算符會複製結果。 |
(A AND B) 結果為:12 , 也就是:0000 1100 |
Or |
二進位或運算符複製一個位,如果它存在於任一運算元。 | (A Or B) 結果為 61 , 也就是:0011 1101 |
Xor |
如果二進位XOR 運算符被設置在一個運算元中,但它們不能同時被二進位XOR 運算符複製。 |
(A Xor B) 結果為:49 ,也就是:0011 0001 |
Not |
二進位補數運算符是一元運算符,具有“翻轉”位的作用。 | (Not A ) 結果為:-61 ,也就是:1100 0011 |
<< |
二進位左移運算符。左運算元值左移由右運算元指定的位數。 | A << 2 結果為:240 , 也就是:1111 0000 |
>> |
二進位右移運算符。左運算元值右移由右運算元指定的位數。 | A >> 2 結果為:15 , 也就是:0000 1111 |
示例
嘗試下麵的例子來理解VB.Net中所有可用的按位運算符,檔:BitwiseOp.vb:
Module BitwiseOp
Sub Main()
Dim a As Integer = 60 ' 60 = 0011 1100
Dim b As Integer = 13 ' 13 = 0000 1101
Dim c As Integer = 0
c = a And b ' 12 = 0000 1100 '
Console.WriteLine("Line 1 - Value of c is {0}", c)
c = a Or b ' 61 = 0011 1101 '
Console.WriteLine("Line 2 - Value of c is {0}", c)
c = a Xor b ' 49 = 0011 0001 '
Console.WriteLine("Line 3 - Value of c is {0}", c)
c = Not a ' -61 = 1100 0011 '
Console.WriteLine("Line 4 - Value of c is {0}", c)
c = a << 2 ' 240 = 1111 0000 '
Console.WriteLine("Line 5 - Value of c is {0}", c)
c = a >> 2 ' 15 = 0000 1111 '
Console.WriteLine("Line 6 - Value of c is {0}", c)
Console.ReadLine()
End Sub
End Module
執行上面示例代碼,得到以下結果 -
F:\worksp\vb.net\operators>vbc BitwiseOp.vb
F:\worksp\vb.net\operators>BitwiseOp.exe
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 -61
Line 5 - Value of c is 240
Line 6 - Value of c is 15
上一篇:
VB.Net運算符
下一篇:
VB.Net決策結構