1、与运算(&):对两个操作数进行二进制位的与操作,只有当对应位置上的位都为1时,结果为1;否则为0。2、或运算(|):对两个操作数进行二进制位的或操作,只有当对应位置上的位都为0时,结果为0;否则为1。3、异或运算(^):对两个操作数进行二进制位的异或操作,如果对应位置上的位相同,则结果为0;否则为1。4、非运算(
在Java 中,使用位运算的效率是比算数运算要快很多,在编写代码时,很多常见的算数运算可以使用位运算代替。 例如: 使用(i + j) >>> 1 代替(i + j) % 2 ; 当求x = m % n 时(n 不为0,并且 n = 2 ^ k ,k > 0),可以使用 x = m & (2^k - 1) 代替; 当求x = m / n 时(n 不为...
int compressedBits = 0; // 存储压缩后的位 compressedBits |= (1 << 0); // 设置第一个位为true compressedBits |= (1 << 1); // 设置第二个位为true 复制代码 使用位移运算(Bitwise Shifts):位移运算是一种使用二进制位来表示数值的方法。通过将整数的不同位向左或向右移动,可以轻松地执行位运算。
11.位运算效率更高 如果你读过JDK的源码,比如:ThreadLocal、HashMap等类,你就会发现,它们的底层都用了位运算。 为什么开发JDK的大神们,都喜欢用位运算? 答:因为位运算的效率更高。 在ThreadLocal的get、set、remove方法中都有这样一行代码: int i = key.threadLocalHashCode & (len-1); 通过key的hashCode值...
Java位运算可以通过以下方式提高程序性能:1. 使用位掩码(Bit Masks):位掩码是一种使用二进制位来表示状态或条件的技术。通过使用位运算符(如与、或和异或)与位掩码进行操作,可以更高效地...
Java中的位运算 Java语言支持的位运算符还是非常多的,列出如下: &:按位与。 |:按位或。 ~:按位非。 ^:按位异或。 <<:左位移运算符。 >>:右位移运算符。 >>>:无符号右移运算符。 除~以外,其余均为二元运算符,操作的数据只能是整型(长短均可)/字符型。
由于是10亿个数字,可以优化下 int index = number / 8; int bitOffset = number % 8; */for(Integer number : randomNumberList) {intindex=number >>3;intbitOffset=number &0x7;// 这里比较特殊,余0是00000001,余1是00000010,因为一共是8位,但是余数只有7,为了统一减少运算步骤,将余0划分给一个1bit...
2. 使用位运算优化 位运算是一种高效的运算方式,可以用于简化条件判断。例如,我们可以使用位运算来判断一个整数是否为偶数或奇数。 publicbooleanisEven(intnum){return(num&1)==0;}publicbooleanisOdd(intnum){return(num&1)!=0;} 1. 2. 3. 4. ...
8. 算法优化: 9 .硬件交互: 10. 位图操作: 平时开发中看源码时 ,看到 Android Telecomm 电话模块时,又看到了运位算。于是决定再小结一下位运算。 private int getCurrentCallSupportedRoutes() { int supportedRoutes = CallAudioState.ROUTE_ALL;