Java移位运算总结

2018-05-23  本文已影响9人  kirito0424
  1. <<左移运算符

格式是:value << num

左移的运算规则是:无论value是正数还是负数,都
丢弃最高位,最低位补0


  1. >>右移运算符(有符号右移)

格式是:value >> num

右移的运算规则是:低位直接舍弃,如果value是正数,高位补0,是负数,高位补1

举个例子:

  1. -4的补码是 1111 1100 (写程序的话int应该是32位的,这里为了简单说明原理,只取8位)

  2. 先右移两位 -- 1111 11

  3. 高位补1 -- 1111 1111

  4. 转化为10进制 -- -1


  1. >>>无符号右移

格式是:value >>> num

右移的运算规则是:低位直接舍弃,高位直接补0

举个例子:

  1. -15的补码是 -- 1111 1111 1111 1111 1111 1111 1111 1111 0001

  2. 先右移两位 -- 1111 1111 1111 1111 1111 1111 1111 1100

  3. 高位补0 -- 0011 1111 1111 1111 1111 1111 1111 1100

  4. 转化为10进制 1073741820

下面是在IDEA里跑的结果,给大家参考:

image image
上一篇 下一篇

猜你喜欢

热点阅读