首页 > 图灵资讯 > 技术篇>正文

Java中>>、>>>、<<

2023-04-29 09:38:51

  定义:

  右移动>>:带符号右移。正向右移高位补0,负向右移高位补1。

  左移动<<:带符号左移。正数左移低位补0,负数左移低位补1。

  无符号右移>>>:高位通补0,无论是正数还是负数。

  栗子:以下是32个代表

  2的二进制:0000 0000 0000 0000 0000 0000 0000 0010

  -2的二进制:1111 1111 1111 1111 1111 1111 1111 1110

  获得2的负数二进制表示:2的二进制补码加1

  1111 1111 1111 1111 1111 1111 1111 1101

  加1

  1111 1111 1111 1111 1111 1111 1111 1110

  <1、2>>>1

  0000 0000 0000 0000 0000 0000 0000 0010

  高位补0 :0000 0000 0000 0000 0000 0000 0000 0001

  <2、2>>1

  0000 0000 0000 0000 0000 0000 0000 0010

  2)高位补0 :0000 0000 0000 0000 0000 0000 0000 0001

  <3、-2>>1

  1) 去掉红色数字 :1111 1111 1111 1111 1111 1111 1111 1110

  2)高位补1 :1111 1111 1111 1111 1111 1111 1111 1111

  <4、2<<1

  1 )去掉红色数字 :0000 0000 0000 0000 0000 0000 0000 0010

  2 ) 低位补0 :0000 0000 0000 0000 0000 0000 0000 0100

  <5、-2<<1

  1 )去掉红色数字 :1111 1111 1111 1111 1111 1111 1111 1110

  2 ) 低位补1 : 1111 1111 1111 1111 1111 1111 1111 1101

  <6、-2>>>1

  1 )去掉红色数字 :1111 1111 1111 1111 1111 1111 1111 1110

  2 ) 高位补0 :0111 1111 1111 1111 1111 1111 1111 1111

  总结:

  2>>>1 相当于2乘以2^1 同理2>>>2^n相当于乘以2^n 无符号位操作均补0

  2>>1 相当于2乘以2^1 同理2>>>2^n相当于乘以2^n正数高位补0,负数高位不是1

  2<<1 相当于2乘以2^1 同理2>>>2^n相当于乘以2^n 正数左移低位补0,负数左移低位补1。

上一篇 maven本地配置规范
下一篇 在Linux下用LVS和Ipvsadm做Web负载均衡(推荐)

文章素材均来源于网络,如有侵权,请联系管理员删除。