Java移位运算总结

  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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容