VB.Net - 位移運算子



假設變數A的值為60,變數B的值為13,則:

運算子 描述 示例
與(&) 按位與運算子:如果位在兩個運算元中都存在,則將其複製到結果中。 (A & B) 的結果為 12,即 0000 1100
或(|) 按位或運算子:如果位在任一運算元中存在,則將其複製。 (A | B) 的結果為 61,即 0011 1101
異或(^) 按位異或運算子:如果位在一個運算元中設定,但在另一個運算元中未設定,則複製該位。 (A ^ B) 的結果為 49,即 0011 0001
非(~) 按位取反運算子:是一元運算子,作用是“翻轉”位。(~A) 的結果為 -61,由於是帶符號二進位制數,因此在二進位制補碼形式下為 1100 0011。
<< 左移運算子(<<)。左運算元的值向左移動右運算元指定的位數。 A << 2 的結果為 240,即 1111 0000
>> 右移運算子(>>)。左運算元的值向右移動右運算元指定的位數。 A >> 2 的結果為 15,即 0000 1111

嘗試以下示例以瞭解 VB.Net 中可用的所有按位運算子:

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

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

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_operators.htm
廣告
© . All rights reserved.