Java位运算总结

1.源码,反码,补码:

(1)正整数的原码反骂补码都和原码一样,都为该数的二进制表示

(2)负数的反码是原码的二进制除了符号位之外,各位取反,补码是在反码末尾+1

(3)仅有带符号整数会有各种编码,无符号整数没有

(4)在计算机内,负数都是存为补码的,这样可以将符号位和其他为统一处理,

1.<<逻辑左移,符号位和其他位一起左移,最右补0,一般相当于*2,但有可能溢出,溢出范围为2^30-2^31-1,移位后最高位变1,变成负数(溢出)

一般左移以为相当于*2

>>算数右移,和上面的不对应,为正数时左边补0,为负数时左边补1. 算数右移一位相当于/2取整(注意负数,-3>>2 = -2)

对于正数 x>>1和x/2相等 
对于负数 x>>1和x/2不一定相等. 

>>>逻辑右移,与逻辑左移对应,连通符号位一起移动,左边补0

有个规则如果左移1位相当于乘以2 右移1位相当于除以2 取整

2.~ 按位非(NOT) 取反

^ 按位异或(XOR)相同为0相反为1



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值