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 变为 0,把 0 变为 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

当上述代码被编译和执行时,它产生以下结果:

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

公众号
微信公众号

编程狮公众号