美文网首页
位运算使用小技巧

位运算使用小技巧

作者: ccccmatser | 来源:发表于2017-10-14 15:22 被阅读7次

背景

  位运算在实际工作中可能会较少被重视,但是在有些情况下位运算会带来性能的极大提升,值得我们深入了解。同时,位运算相关的算法也是面试中的高频题。

奇偶判断

  一个奇数用二进制表示时,最低位一定是1,将其与1进行与运算,判断得数是否为0。

public static boolean isOdd(int num) {
        return (num&1)==1;
}

判断一个数是否是2的幂

  

public static boolean isPowerTwo(int num) {
        return (num&(num-1)) == 0;
}

求相反数

  

public static int getOppositeNumber(int a) {
        return (~a)+1;
}

交换两个数

public static void changeNum(int a, int b) {
    a = a ^ b;
    b = a ^ b;
    a = a ^ b;
    }

两数求和

  直接两数相加,可能会溢出。采用位运算的方法可以避免。

public static int sum(int a, int b) {
    return (a&b) + ((a^b) >> 1);
}

求2的n次方

  

public static int pow(int pow) {
    return (pow << 2);
}

相关文章

  • 位运算使用小技巧

    背景   位运算在实际工作中可能会较少被重视,但是在有些情况下位运算会带来性能的极大提升,值得我们深入了解。同时,...

  • 位运算小技巧

    位运算的一些小技巧,C语言描述,翻译自bithacks 计算一个整数(integer)的符号 上面最后一个语句使用...

  • Python基础之位运算符(含原码反码补码的通俗解释)

    目录 1 二进制 2 原码、反码、补码 3 位运算符 4 位运算符使用技巧 上回学习运算符时,漏了位运算符,因为位...

  • 位运算

    参考:位运算技巧 位运算的使用 1.and运算and运算通常用于二进制取位操作,例如一个数and1的结果就是取二进...

  • python中的广播机制(broadcasting)

    在python中使用numpy进行按位运算的时候,有一个小技巧可以帮助减少代码量——那就是broadcasting...

  • 位运算技巧

    消除x最后一位1:x & (x - 1)Go代码: 一、用O(1) 时间检测整数 n 是否是 2 的幂次。分析:如...

  • 位运算技巧

    基础知识 对于位运算,大家都很熟悉,基本的位操作有与(&)、或(|)、非(~)、异或(^)等等。在面试中经常会出现...

  • 位运算技巧

    位运算技巧的总结 1. 位运算基础 与(&)两个比特位同时为1结果为1,否则为0 或(|)只要有一个为1结果就为1...

  • 常用的位运算使用技巧总结

    一些常见的二进制位的变换操作: 注: shr--右移;shl--左移;xor--异或;or--或运算;and--与运算

  • Java位运算符使用技巧

    一、判断奇偶数 我们可以利用 & 运算符的特性,来判断二进制数第一位是0还是1。用if ((a & 1) == 0...

网友评论

      本文标题:位运算使用小技巧

      本文链接:https://www.haomeiwen.com/subject/xcoxuxtx.html