#include using namespace std; const int INF = 0x3f3f3f3f; int main() { /** 阅读材料: https://blog.csdn.net/weixin_41183791/article/details/84886700 1.去掉最后一位 x>>1 2.在最后加一个0 x<<1 3.在最后加一个1 (x<<1)+1 4.把最后一位变成1 x|1 5.把最后一位变成0 (x|1)-1 6.最后一位取反 x^1 7.把右数第k位变成1 x|(1<<(k-1)) 8.把右数第k位变成0 x&~(1<<(k-1)) 9.右数第k位取反 x^(1<<(k-1)) 10.取末三位 x&7 11.取第k位 x&(1<<(k-1)) 12.取右数第k位 x>>(k-1)&1 //右移k位,再与1一下,就知道这位是1是0了 13.把右数第k位变成1 x|(1<>1 19.去掉右起第一个1的左边 x&(x^(x-1)) 习题答案: 1、奇偶性判断 a & 1 =1 奇数, a & 1 =0 偶数 2、右边数第k位变成0 x&~(1<<(k-1)) 3、从右边数末k位取反 x^(1<>(k-1)&1 5、将从右边数的第一个0变成1 x|(x+1) */ return 0; }