Java位运算

| 运算(按位或)
0|0=0
0|1=1
1|0=1
1|1=1

10|12=1010|1100=1110=14
~ 运算(按位非)
~0=1
~1=0
^ 运算(按位异或)
0^0=0
0^1=1
1^0=1
1^1=0

10^12=1010|1100=0110=6
<< 左移
  • 向左移动n位,右边空出用0表示;快速计算即m*2^n
2<<2=8
2<<3=16
3<<4=48
>> 右移
  • 向右移动n位,左边空出用0表示)
2>>2=0010>>2=0000=0
35>>2=0010 0011>>2=0000 1000=8
30>>>2=0001 1110>>>2=0000 1110=7
>>> 无符号右移
  • 同理右移,只针对负数,正数无意义
-1>>>1=...1111 1111>>>1=...1111 1111=2147483647
-1>>>2=...1111 1111>>>2=0..1111 1111=2147483647-1073741824=2147483647-2^30=1073741823
-7>>>1=...1111 1001>>>1=...1111 1100=(2147483647-2-1)=2147483644
负数转二进制:
  • 取反码+1
-1=-(...0000 0001)=(...1111 1110)+1=...1111 1111
-7=-(...0000 0111)=(...1111 1000)+1=...1111 1001
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值