JAVA--位运算

<<

<<(左移位运算):其实就是乘以2的移动的位数次幂。 例如 3<<2 相当于3*2(2)=12

<<(左移位运算) 后在空出来的最低位位置补0

>>

>>(右移位运算):其实就是除以2的移动的位数次幂。例如 6>>2 相当于6/2(2)=1 [整数相除取整]

>>(右移位运算) 后在空出来的最高位位置补什么由原有数据的最高值而定:

    如果最高位为0,右移后,用0补空位。   

   如果最高位为1,右移后,用1补空位。

>>>

>>> (无符号右移):其实就是除以2的移动的位数次幂。例如 6>>>2 相当于6/2(2)=1 [整数相除取整]

>>>(无符号右移):无论最高位是什么,右移后,都用0补。

&

&(与运算): 先把数字转换为它相对应的二进制数,0视为false,1视为true,进行逻辑与(&)的运算。

true (1)& true(1) =true(1);

true(1) & false (0)=false (0);

false(0) & true(1) =false(0) ;

false(0) & false(0) =false (0);

总结:只要两边的boolean表达式结果,有一个位false(0),那么结果就是false(0),只有两边都为true(1),结果为true(1)。

|

|(或运算): 先把数字转换为它相对应的二进制数,0视为false,1视为true,进行逻辑或(|)的运算。 

true (1)| true(1) =true(1);

true(1) | false(0) =true (1) ;

false(0) | true (1)=true (1);

false(0) | false(0)=false (0);

总结:只要两边的boolean表达式结果,有一个位true(1) ,那么结果就是true(1) ,只有两边都为false(0),结果为false(0)。

^

^(异或运算):先把数字转换为它相对应的二进制数,0视为false,1视为true,进行逻辑异或(^)的运算。 

true(1) ^ true(1) =false(0) ;

true(1)^ false(0) =true(1)  ;

false(0) ^ true(1) =true(1) ;

false(0) ^ false(0) =false(0) ;

总结:两边相同结果false(0),两边不同结果true(1)。

用途:一个数异或同一个数两次,结果还是它本身。(可用于加密和解密)

例如:7^4^4=7;

~

~(反码):先把数字转换为它相对应的二进制数,进行 取反

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值