千家信息网

如何理解Java中左移和右移问题

发表于:2025-11-15 作者:千家信息网编辑
千家信息网最后更新 2025年11月15日,如何理解Java中左移和右移问题,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1 原码、反码、补码原码:将十进制转化为二进制即原码;
千家信息网最后更新 2025年11月15日如何理解Java中左移和右移问题

如何理解Java中左移和右移问题,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

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中左移和右移问题问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

补码 反码 问题 符号 高位 中左 最高 正数 负数 移动 相同 二进制 低位 字节 情况 截图 更多 类型 计算机 帮助 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 基础软件开发工程师 福州市高新区网络安全局 中国高等植物物种数据库 读取服务器文件路径 医院病房管理系统数据库设计总结 在线教育软件开发公司有哪些 数据库 约束 怎么查看会稽山数据库名称 网络安全技术与实践 杨红梅 计算机网络技术人才需求量 在数据库改数据会留下记录吗 jsp与数据库怎么连接 养殖网络技术培训 软件开发ir是什么意思 数据库怎么获取用户权限java 网络安全知识背景图 修改建造师数据库的申请表 微信二维码服务器不显示 关于加强政务网络安全 城岩游网络安全教育 医院病房管理系统数据库设计总结 excel选择填充数据库 我国网络安全将实现重大升级 发票设置安全接入服务器地址 网络安全维护工作都做什么 我的世界服务器设置地皮价格 思凡互联网科技有限公司 合作协议 软件开发 深圳市宇轩网络技术公司 怎样用管理员身份登录系统数据库
0