图解:彻底搞懂Java位运算

图解:彻底搞懂Java位运算点击上方 程序员小乐 关注 星标或置顶一起成长 第一时间与你相约 每日英文 If you run you stand a chance losing but if you don t run you ve a

大家好,欢迎来到IT知识分享网。

点击上方 “程序员小乐”关注, 星标或置顶一起成长

第一时间与你相约

每日英文

If you run, you stand a chance losing ,but if you don’t run , you’ve already lost.

如果你在努力奋斗,你有可能会失败,但是,如果你不奋斗你就已经输了。

每日掏心话

当我们忙碌着不断前进时候,从未有空停住脚步驻足欣赏,所有的事情如同奔跑的汽车,在玻璃前留下的一瞬间的景色。

来自:CoderJed | 责编:乐乐

链接:jianshu.com/p/dabeb5

图解:彻底搞懂Java位运算

往日回顾:春运买不到票?推荐一款全 GitHub 最牛逼的抢票神器,3秒钟抢到!支持候补抢票!标星2.2W+

正文

1. 原码、反码、补码的转换

(1) 正数的原码、反码、补码相同

图解:彻底搞懂Java位运算

(2) 负数的原码、反码、补码转换如下图所示

图解:彻底搞懂Java位运算

需要说明的是,在计算机中,数字是以补码的形式存在的,计算也是用补码来进行计算,计算后的结果也是补码

2. 位运算

(1) & : 按位与

5 & 9 = 1

图解:彻底搞懂Java位运算

(2) | : 按位或

5 | 9 = 13

图解:彻底搞懂Java位运算

(3) ^ : 按位异或

5 ^ 9 = 12

图解:彻底搞懂Java位运算

(4) ~ : 按位非

~5 = -6

图解:彻底搞懂Java位运算

(5) << : 左移

5 << 2 = 20

图解:彻底搞懂Java位运算

-5 << 2 = -20

图解:彻底搞懂Java位运算

(6) >> : 右移

-5 >> 2 = -2

图解:彻底搞懂Java位运算

(7) >>> : 无符号右移

-5 >>> 2 =

图解:彻底搞懂Java位运算

3. 注意

  • 对于低于 int 类型(如byte、short和char)的操作数总是先自动转换为int类型后再移位
  • 对于 int 类型的整数移位 a >> b, 当 b>32 时,系统先用 b 对 32 求余(因为 int 是 32 位),得到的结果才是真正移位的位数,例如,a >> 33 和 a >> 1 的结果相同,而 a >> 32 = a
  • 对于 long 类型的整数移位 a >> b, 当 b>64 时,系统先用 b 对 64 求余(因为 long 是 64 位),得到的结果才是真正移位的位数
  • 当进行移位运算时,只要被移位的二进制码没有发生有效位的数字丢失(对于正数而言,通常指被移出去的位全部是 0),不难发现左移 n 位就相当于乘以 2 的 n 次方,右移 n 位则是除以 2 的 n 次方
  • 进行移位运算不会改变操作数本身,只是得到了一个新的运算结果

欢迎在留言区留下你的观点,一起讨论提高。如果今天的文章让你有新的启发,学习能力的提升上有新的认识,欢迎转发分享给更多人。

猜你还想看

阿里、腾讯、百度、华为、京东最新面试题汇集

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/138514.html

(0)
上一篇 2025-06-12 19:45
下一篇 2025-06-12 20:00

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信