java 位操作


操作符

名称

含义

例子

&

按位与

两位都位1是,值是1,否则为0

101 & 100=100

|

按位或

只要有一位位1,值就为1,两位都为0时,值为0

101 | 100 =101

~

按位取反

取相反的值,即:值为1,取反后为0.值为0,取反后为1

~101=010

^

按位异或

两个值不同,值为1,相同则为0

101 ^100=001

<< 

左移

向左移动,低位补0

100<<3=

100000

>> 

带符号右移

带符号右移,负数高位补1,正数补0

假设用8位表示整数:10000001>>3=

11110000

>>> 

无符号移

不带符号右移,不论负数还是正数,高位补0

假设用8位表示整数:10000001>>3=

00010000


注意事项:

1、位操作是针对2进制数来操作的。所以,人工计算的话,需要先转换成2进制数,再进行计算。

2、写代码的时候,经常会用16进制表示整数,需要注意整数的总位数,高位可能要补0.

      例如:0xff & 0x262  要转换成:0x00ff & 0x0262这样来看,就比较明白的。当然,最终运算还是要转成2进制:

3、表格中的整数假设为8位,是为了方便演示。实际要以计算机为准。通常整形是32位。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值