Java中的“&“,“|“,“<<“,“>>“,“^“,“~“运算符的含义

1."&"(按位与)

运算规则:两个二进制同一位上都是1,结果才是1,否则为0(十进制转为二进制进行运算)

比如: 20 & 2 = 0(十进制)

20的二进制为 0001 0100

2的二进制为   0000 0010

按位与结果为 0000 0000 = 0(十进制)

2."|"(按位或)

运算规则:两个二进制同一位上都是0,结果才是0,否则为1(十进制转为二进制进行运算)

比如: 20 | 2 =22(十进制)

20的二进制为   0001 0100

2的二进制为     0000 0010

按位或结果为   0001 0110 = 22(十进制)

3."<<"(左移运算符)

运算规则:向左移动X位,无论正负数低位(最右边)都补x个0(正数扩大2的x次方倍,负数缩小2的x次方倍)

比如: 20 << 2 = 80

20的二进制为   0001 0100

向左移动两位   0101 0000 = 80(十进制)

4.">>"(右移运算符)

运算规则:向移动X位,正数高位(最左边)补x个0,负数高位(最左边)补x个1(正数缩小2的x次方倍,负数扩大2的x次方倍)

比如: 20 >> 2 = 5

20的二进制为   0001 0100

向右移动两位   0000 0101 = 5(十进制)

5."<<<"

无此表达式

6.">>>"(无符号右移运算符)

运算规则:无符号右移x位,无符号是与>>x对比的,该操作在移动后,无论正负数高位(最左边)都补0

比如: 20 >>>2=5

20的二进制为   0001 0100

向右移动两位   0000 0101 = 5(十进制)

负数的二进制数表示方法与正数不同,需要使用补码来表示

补码是每个负数绝对值对应的二进制取反加一

-5是在java中默认是int类型,int 占4个字节,每个字节8位,即32位

-5的源码 1000 0000 0000 0000 0000 0000 0000 0101

比如: -5 的补码

-5的绝对值为5,对应的二进制 1000 0000 0000 0000 0000 0000 0000 0101

取反对应的二进制                  1111  1111  1111  1111 1111  1111 1111  1010

加1                                                                                                              1

结果 (补码)                             1111  1111  1111  1111 1111  1111 1111  1011 (-5的补码)

比如: -5 >>>2

-5的二进制补码为    1111  1111  1111  1111 1111  1111 1111  1011

向右移动两位           0011  1111  1111  1111 1111  1111 1111  1110(补码)正数源码反码补码相同

结果                          2^30-2=1073741822

7."^"(异或)

运算规则:两个二进制位"同0异1",也就是相同为0,不同为1

比如: 20 ^ 6 = 18(十进制)

20的二进制为 0001 0100

6的二进制为   0000 0110

异或结果为    0001  0010 = 18(十进制)

8."~"(取反)

运算规则:正数的源码反码补码相同,所以正数的反码与源码相同,负数的反码是对应正数源码每位取反

比如: ~20 = 20

20的二进制为 0001 0100(源码)

正数的反码与源码相同

比如: ~(-20) 

-20的二进制为 1001 0100(源码)

取反                 1110 1011(-20的反码)

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值