你在c ++中的(a& 1)是什么意思?

时间:2015-12-30 12:56:08

标签: c++ bitwise-operators bitwise-and

在某些c ++代码中,我看到有人使用像

这样的语句
while(a) { //here a is an integer variable
    if(a&1) {
        //some expression
    }
}

现在我的问题是a&1是什么意思?

2 个答案:

答案 0 :(得分:2)

使用按位运算检查数字是否为奇数。二进制数中的最后一位是那个位置(或2 ^ 0位)。所有奇数都会打开这个位;这是他们奇怪的原因。因此,通过检查数字是否有最后一位(这是& 1的作用),您实际上是在检查它是否为奇数。由于它使用按位运算,因此比使用模2更快。

答案 1 :(得分:2)

此处&bitwise AND运算符。

a&1(或者更确切地说a & 1)检查a的LSB是否为SET。