Java位运算符计算

Java基础知识回顾-day1

位运算符:

1. 按位与(&):当两位同时为1时才返回1。

例如:5 & 9 = 1
0101 & 1001 = 0001 =1

2. 按位或(|):只要有一位为1即可返回1。

例如:5 | 9 = 13
0101 & 1001 = 1101 =13

3. 按位非(~):单目运算符,将操作数的每个位(包括符号位)全部取反。

例如:~5 = -6
~0 0101 = 1 1010 = -6(符号位变化)

4. 异或(^):当两位相同时返回0,不同时返回1。

例如:5 ^ 9 = 12
0101 ^ 1001 = 1100 =12

5. 左移(<<):

例如:5 << 2 = 20
0101 << 2 = 10100 =20

6. 右移(>>):

例如:5 >> 2 = 1
0101 >> 2 = 0001 =1

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

例如:5 >>> 2 = 1
0101 >>> 2 = 0001=1
注:当操作数为负数时,我们需要将其补码连带符号位向右移动高位补0,如-5在Java中保存为:11111111 11111111 11111111 11111011,-5 >>> 2 无符号右移结果为:00111111 11111111 11111111 11111110,将结果转换为10进制得出:1073741822
在这里插入图片描述

小结:Java中所有数值都以补码的形式保存,负数的补码转原码需要按位取反,末尾加1。位运算符的运算规则是:参与运算的数字,低位对齐,高位不足的补零。

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值