n&1
n&1:与操作,判断 n 二进制最右一位是否为 1 。
// 若等于1,表示最右一位是1;
// 否则是0.
if ((n & 1) == 1) {
...
}
n&1常用来判断n是奇数还是偶数。
if (n & 1) == 1):
n为奇数
if (n & 1) == 0):
n为偶数
n>>i
<<运算(左移运算)
a<<b 表示把a转为二进制后左移b位(在后面添加 b个0)。
>>运算(右移运算)
a>>b表示二进制右移b位(去掉末b位)。
n = n>>1;
// 简写如下
n >>= 1;
实例
n的二进制 表示中 第k位是多少
n = 15 = (1111)2
1、先把第k位移到最后一位 n >> k (把n的第k位数字移动到个位)
2、看个位是多少 x & 1 (x的个位是 )
代码案例
#include <iostream>
using namespace std;
int main()
{
int n = 10;
for( int i = 3 ; i >= 0 ; i -- ) cout <<( n >> i & 1 ) ;
return 0;
}