文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Java中左移和右移问题图文详解

2024-04-02 19:55

关注

 1 原码、反码、补码

原码:将十进制转化为二进制即原码;
反码:正数的反码与原码相同,负数的反码(除却最高位的符号位不变)与原码相反;
补码:正数的补码与原码相同,负数的补码(除却最高位的符号位不变)与原码的取反加一。
举例:5 和 -5
5:
原码:0 0000000 00000000 00000000 00000101
反码:0 0000000 00000000 00000000 00000101
补码:0 0000000 00000000 00000000 00000101
-5:
原码:1 00000000 00000000 00000000 00000101
反码:1 1111111 11111111 11111111 11111010
补码:1 1111111 11111111 11111111 11111011

2 位移操作

我们需要知道将一个数字,在计算机中进行移动多少位,例如8<<1代表将8转化为二进制在计算机中左移1位,低位补零;
<<:左移:低位补0
>>:有符号右移:正数高位补0,负数高位补1
>>>:无符号右移,高位补零
为什么没有无符号左移呢?因为左移的情况下只存在补零的情况。
举例 :5 和 -5
5<<1
原码:0 0000000 00000000 00000000 00000101
左移1位:0 0000000 00000000 00000000 00001010
即:10
-5<<1
原码:1 00000000 00000000 00000000 00000101
补码:1 1111111 11111111 11111111 11111011
左移1位:1 1111111 11111111 11111111 11110110
取其补码:1 0000000 00000000 00000000 00001010
即:-10
5>>1
原码:0 0000000 00000000 00000000 00000101
右移1位:0 0000000 00000000 00000000 00000010
即:2
-5>>1
原码:1 00000000 00000000 00000000 00000101
补码:1 1111111 11111111 11111111 11111011
右移1位:1 1111111 11111111 11111111 11111101
取其补码:1 0000000 00000000 00000000 00000011
即:-3
5>>>1:与5>>1一样,都是高位补0
原码:0 0000000 00000000 00000000 00000101
右移1位:0 0000000 00000000 00000000 00000010
即:2
-5>>>1
原码:1 00000000 00000000 00000000 00000101
补码:1 1111111 11111111 11111111 11111011
右移1位:0 1111111 11111111 11111111 11111101
即:2147483645
代码运行截图

总结:

位移操作很简单,使用补码移动,补齐空缺位就行,除了>>:补与最高位一致的;其他移动哪缺哪补零。
在java中无论截图中的a定义成 byte,short,int哪一种类型,它默认都是使用int类型(4字节32位),你使用long(8字节64位)

3 补充操作符

~(按位非):
逐位取反
|(按位或):
一真为真
1|0=1,
0|0=0,
1|1=1,
0|1=1
&(按位与):
两真为真
1|0=0,
0|0=0,
1&1=1;
0&1=0
^(按位异或):
相异为真
1^1=0
1^0=1
0^1=1
0^0=0.

总结

到此这篇关于Java中左移和右移问题的文章就介绍到这了,更多相关Java左移和右移内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯