javaSE基础-位运算符示例

运算符 左移 <<
比如:3 << 2 = 12 即 3*2^2 = 12
Int类型(整数)在内存中占4字节

int类型内存表示说明
30000-0000 0000-0000 0000-0000 0000-0011
120000-0000 0000-0000 0000-0000 0000-1100<< 2,整体左移两位补0,长出的丢弃

运算符 右移 >>
比如:6 >> 2 = 1 即 6/2^2 = 1

int类型(运算结果)内存表示说明
60000-0000 0000-0000 0000-0000 0000-0110
>> 2 = 10000-0000 0000-0000 0000-0000 0000-0001>> 2,整体右移两位,补什么由最高位决定,此处最高位为0,长出的丢弃
-61111-1111 1111-1111 1111-1111 1111-1010负数就是 正数(6)取反加1
>> 2 = -21111-1111 1111-1111 1111-1111 1111-1110>> 2,整体右移两位,补什么由最高位决定,此处最高位为1,最高位补11,长出的丢弃
运算符 >>>无符号右移
>>>2 = 10737418220011-1111 1111-1111 1111-1111 1111-1110无符号右移,无论高位是什么,高位补0

运算符 &
例: 6 & 3 = 2 两个操作数中位都为1,结果才为1,否则结果为0

int类型(运算结果)内存表示说明
60000-0000 0000-0000 0000-0000 0000-0110
& 30000-0000 0000-0000 0000-0000 0000-0011与 0假 1真
=20000-0000 0000-0000 0000-0000 0000-0010与运算

运算符 |
例: 6 | 3 = 7 两个位只要有一个为1,那么结果就是1,否则就为0

int类型(运算结果)内存表示说明
60000-0000 0000-0000 0000-0000 0000-0110
| 30000-0000 0000-0000 0000-0000 0000-0011或 0假 1真
=20000-0000 0000-0000 0000-0000 0000-0111或运算

运算符 ^
例: 6 ^ 3 = 5

int类型(运算结果)内存表示说明
60000-0000 0000-0000 0000-0000 0000-0110
^ 30000-0000 0000-0000 0000-0000 0000-0011异或 0假 1真 口诀:相同取0,相异取1
=50000-0000 0000-0000 0000-0000 0000-0101异或运算

运算符 ~ 取反

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值