VB.Net - 移位運算符

2022-06-02 11:58 更新
   按位與運算(a&b)  按位或運算(a|b) 按位異或(a^b) 
 a(60)的二進制表示 0011 1100  0011 1100  0011 1100 
 b(13)的二進制表示 0000 1101 0000 1101  0000 1101 
 運算結果 0000 1100 0011 1101 0011 0001
 結果的十進制表示  12  61  49
   按位取反(~a) 左移(a<<2) 右移(a>>2) 
 a(60)的二進制表示 0011 1100  0011 1100  0011 1100 
 運算結果 1100 0011  1111 0000 0000 1111
 運算結果的十進制表示  -61  240  15
注:關于原碼,補碼和反碼:原碼:假設機器字長為n,原碼就是用一個n位的二進制數,其中最高位為符號位:正數是0,負數是1。剩下的表示概數的絕對值,位數如果不夠就用0補全。反碼:在原碼的基礎上,符號位不變其他位取反,也就是就是0變1,1變0。補碼:在反碼的基礎上加1。  PS:正數的原、反、補碼都一樣,0的原碼跟反碼都有兩個,因為這里0被分為+0和-0。按位取反和反碼有一定的相似之處但又不盡相同(反碼符號位不取反)。在計算機中,是以補碼的形式存放數據的。1100 0011剛好對應-61。-61的原碼-> 1011 1101->反碼->1100 0010->補碼->1100 0011
運算符 描述 實例
And
按位與運算符:參與運算的兩個值,如果兩個相應位都為  1,則該位的結果為 1,否則為 0 (a & b) 輸出結果 12 ,二進制解釋: 0000 1100
Or
按位或運算符:只要對應的二個二進位有一個為 1 時,結果位就為 1。 (a | b) 輸出結果 61 ,二進制解釋: 0011 1101
Xor
按位異或運算符:當兩對應的二進位相異(不同)時,結果為 1 (a ^ b) 輸出結果 49 ,二進制解釋: 0011 0001
Not 按位取反運算符:對數據的每個二進制位取反,即把 1 變?yōu)?0,把 0 變?yōu)?1 (~a ) 輸出結果 -61 ,二進制解釋: 1100 0011
<< 左移動運算符:運算數的各二進位全部左移若干位,由"<<"右邊的數指定移動的位數,高位丟棄,低位補 0。 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

當上述代碼被編譯和執(zhí)行時,它產生以下結果:

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


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號