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

一、位运算

(1)按 位 与 &

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

cd77933914e7f5488fd971a51442f268.png      

a228dcaa69af145b80ef48f0cd9cd762.png

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

98b59be422d58e611205be5d480b86a7.png      

bfc624351c714d6c69609778c39a6e56.png

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

(2)按位或 |

有1为1,否则为0

f26ffe9496211f0f7f915159692eacd9.png        

039cf581812b016a58c615a8bf59cb53.png

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

101a2003dfac6475636ebabda0958c10.png       

5c3872b390625184c310cb99213dcf1c.png

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

(3)异或 ^

相同为0,不同为1

0ccf6927baa0204962543ac64580a7f4.png      

7dd8498914daeb14cd526f24204cd9d6.png

二、移位运算

(1)左 移 (<< )

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

3e9867c0f497747808186f78b95f0129.png      

f588fc2703a839661f1001e48fcd62f2.png

(2)右 移 (>> )

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

60f810c766753bc8d646d524b7e0dd9a.png       

8d30dafcea8a7a896c347eea5b2d9da9.png

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

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

b63b773365321bffb943364a1af77c9a.png

80ba804b5644578b18d34229618902b8.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值