C ++中的(A&1)是什么意思?

what do you mean by (a&1) in c++?

本文关键字:是什么 意思 中的      更新时间:2023-10-16

在一些c++代码中,我看到有人使用这样的语句

while(a) { //here a is an integer variable
    if(a&1) {
        //some expression
    }
}

现在我的问题是a&1的含义是什么?

这里,&是按位AND运算符。

a&1(或者更确切地说是a & 1)检查a的LSB是否被设置。

它使用逐位运算检查数字是否为奇数。二进制数的最后一位是一位(或2^0位)。所有奇数都会打开这个位;这就是它们的怪异之处。因此,通过检查一个数字的最后一位是否为on(& 1就是这样做的),实际上就是在检查它是否为奇数。由于它使用逐位运算,因此它比为此使用模2要快得多。