一.左移与右移的意义 左移n,乘2的n次方 右移n,除以2的n次方 二.判断一个数奇偶性 x&1判断x的二进制的最后一位是1还是0,因为一个数的二进制从倒数第二位到最高位都是2的多少次方,只有最末位可以表示为2的0次方,所以最后一位是1则为奇数,为0为偶数 三.求出x的第i位 将x右移i位,再x&1,即(x>>i)&1,因为二进制数只有1和0,所以和0与会得到第i位是什么数 四.将x第i位设置为1 (1<<i)|x,将1左移i位,再与x进行或运算,即可将x的第i位设置为1,此时其他位与0进行或运算则保持原数 五.将第i位设置为0 x&(~(1<<i)),先将1左移i位,再进行非运算,如此一来x的第i位与0进行与运算,则变为0,其他位数与1进行与运算保持原数 六.判断一个数是否为2的n次方 判断x&(x-1)==0,True:x为2的n次方 假设一个数是2的n次方,则这个数的二进制数最高位m为1,其余位置为0,那么该数-1所得的二进制数就会是第m位为0,从m-1位往右均为1,此时两者进行与运算所得就是0 七.获取x最低位的1 x&(-x),一个负数的补码为该数对应正数的反码+1
位运算的技巧
最新推荐文章于 2024-09-27 14:28:55 发布