简单的位运算
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;}