加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java中位运算和移位运算详解

发布时间:2020-12-15 07:46:59 所属栏目:Java 来源:网络整理
导读:? 一、位运算 (1)按 位 与 如果两个相应的二进制形式的对应的位数都为1,则结果为1,记为同1为1,否则为0。首先我们看一下对正数的运算 ? ? ?? ? 分别看一下正数和负数的具体运算步骤 ? ? ? ? ? ? ? ?? ? ? 正数直接取二进制运算,负数取反加一得补码再运

? 一、位运算

(1)按 位 与 &

如果两个相应的二进制形式的对应的位数都为1,则结果为1,记为同1为1,否则为0。首先我们看一下对正数的运算

? ? ??

?

分别看一下正数和负数的具体运算步骤

? ? ? ? ?

? ? ??

? ?

正数直接取二进制运算,负数取反加一得补码再运算,得到的结果符号位为0,不需要做任何操 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?作直接给出结果,后面会讲到如果结果为负数的情况

?

(2)按位或 |

? 有1为1,否则为0

? ? ? ??

?

分别看一下正数和负数的具体运算步骤

? ? ? ?

讲一下负数求反和补码的直接给结果,当运算结果符号位是1为负数,那就需要进行减1操作,再按位取反,这个时候得到的才是正确的结果

?

(3)异或?^

相同为0,不同为1

?

? ? ??

二、移位运算

(1)左 移 (<< )

?右边空出的位用0填补高位左移溢出则舍弃该高位。计算机中常用补码表示数据,注,用补码计算

?

? ? ??

(2)右 移 (>> )

?左边空出的位用0或者1填补。正数用0填补,负数用1填补。注:不同的环境填补方式可能不同;低位右移溢出则舍弃该位。

?

? ? ? ?

(3)无 符 号 右 移 (>>> )

?无符号右移:正数与右移规则一样,负数的无符号右移,就是相应的补码移位所得,在高位补0即可

?

? ? ? ?

?

?

? ? ? ? ?

原文地址:https://www.cnblogs.com/xiuyu/p/8428963.html

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读