美文网首页
常见位运算的面试题

常见位运算的面试题

作者: 要记录的Ivan | 来源:发表于2019-03-14 19:40 被阅读0次

1. 不用临时变量,交换两个整数?

一个数和另一个数异或两次得到的还是原来的数

例如:

int a=1,b=2;
a=a^b;
b=a^b;
a=a^b;

2. 统计一个整数二进制中1的个数?

n & (n - 1)将整数n的最后一位为1的位变成0
例如:

public  int fun(int num)
{
    int count = 0;
    while(num!=0)
    {
        num = num & (num - 1);
        ++count;
    }
    return count;
}

3. 不使用+,-,*,/完成整数相加

public  int Add(int num1, int num2)
 {
     int sum, carry;
     do{
         //将两个数异或,模拟加法中相加不进位的结果
         sum = num1 ^ num2;
         //只考虑进位的情况
         carry = (num1 & num2) << 1;
         num1 = sum;
         num2 = carry;
     }
     while(num2 != 0); //将结果相加的过程就重复上述过程,直到进位为0

     return sum;
 }

4. 判断一个数字是否为2 的幂次

如果⼀个数字是2 的幂次,那么只有最⾼位为1 ,也就是只需要判断这个数字减掉最⾼位之后是否为0 即可

public boolean log2 (int num){
    if(num & (num-1)){
         return true;
    }else{
        return false;
    }
    return false;
}

5. 给定一个整数,请写一个函数判断该整数的奇偶性

一个数是偶数那么最后一个一定是 0 如果一个数是奇数那么最后一位一定是 1

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

参考资料

相关文章

  • 常见位运算的面试题

    1. 不用临时变量,交换两个整数? 一个数和另一个数异或两次得到的还是原来的数 例如: 2. 统计一个整数二进制中...

  • 按位与运算获取图像重要的部分---OpenCV-Python开发

    常见的按位逻辑运算 在OpenCV内,常见的按位运算函数如下表所示: 函数名含义bitwise_and()按位与b...

  • 位运算常见技巧

    在新浪微博上看到一篇文章写位运算的写的很深入,文章链接见末尾,特此mark。 0.位运算的种类 markdown中...

  • golang的位运算

    常见的golang位运算符: &, |, << 和 >> 都是常见的运算符,主要说明 ^, &^的使用进行说明 ^...

  • 常见的JavaScript位运算

    平常的数值运算都是转成二进制再进行计算,而位运算则是直接进行二进制,因此执行效率会比较高,而且有的地方使用位运算会...

  • 位运算

    位运算在实际开发中比较少用,主要使用于flag切换用。常见的位运算有&(位与)、|(位或)、^(异或)、~(非)。...

  • Java 1.7 ConcurrentHashMap()

    位运算 位运算在Java中很常见, 比如说异或等, 在HashMap和ConcurrentHashMap中也有用到...

  • 常见位运算及技巧

    移位运算 移位运算包含逻辑移位(logical shif) 和 算术移位(arithmetic shift)。 逻...

  • 【总结】位运算常见技巧

    原文地址:https://juejin.cn/post/6844903645171941384[https://j...

  • 位运算

    一般位运算的题目都是神仙题,靠平时的积累。一般位运算常见的操作符有:& :按位与| :按位或^ :按位异或~ :取...

网友评论

      本文标题:常见位运算的面试题

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