Java位运算

java中的位运算操作
一、位运算符
按位与(&)
规则:两个操作数的对应位都为 1 时,结果位才为 1,否则为 0。
例如:5(二进制 0101)&3(二进制 0011)结果为 1(二进制 0001)。

按位或(|)
规则:两个操作数的对应位只要有一个为 1,结果位就为 1。
例如:5|3 结果为 7(二进制 0111)。
按位异或(^)
规则:两个操作数的对应位不同时,结果位为 1,相同时为 0。
例如:5^3 结果为 6(二进制 0110)。
按位取反(~)
规则:对操作数的每一位进行取反操作,即 0 变为 1,1 变为 0。
例如:~5 结果为 - 6(5 的二进制为 0101,取反后为 1010,即十进制的 - 6)。
左移(<<)
规则:将操作数的二进制位向左移动指定的位数,右边用 0 填充。
例如:5<<2 结果为 20(5 的二进制 0101 左移两位变为 10100,即十进制的 20)。
右移(>>)
规则:将操作数的二进制位向右移动指定的位数,正数时左边用符号位填充,负数时左边用 1 填充。
例如:5>>2 结果为 1(5 的二进制 0101 右移两位变为 0001)。
无符号右移(>>>)
规则:将操作数的二进制位向右移动指定的位数,左边用 0 填充。
例如:-5>>>2 结果为 1073741821(-5 的二进制补码形式为 11111111111111111111111111111011,无符号右移两位变为 001111111111111111111111111111101,即十进制的 1073741821)。
二、位运算的应用场景
高效的整数运算
可以替代一些乘法、除法和取模运算,特别是在处理 2 的幂次方的运算时,位运算更加高效。例如,将一个整数乘以 2 可以使用左移一位(n <<1)来实现,将一个整数除以 2 可以使用右移一位(n>> 1)来实现。

标志位的设置和检查
可以使用位运算来设置和检查整数中的标志位。例如,可以使用按位或(|)来设置一个标志位,使用按位与(&)来检查一个标志位是否被设置。

权限管理
在权限管理系统中,可以使用位运算来表示不同的权限。例如,可以使用一个整数的不同位来表示不同的操作权限,如读取权限、写入权限、执行权限等。通过位运算可以方便地检查和设置用户的权限。

数据压缩和编码
可以使用位运算来实现数据压缩和编码。例如,可以将多个布尔值压缩到一个整数中,使用位运算来提取和设置这些布尔值。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值