這個是說 給你一個數(shù) 找出比他大的最小的一個數(shù) 滿足二進制中1的個數(shù)和他相同
看到了一個人寫的很強大的位運算代碼
#include <stdio.h>
int main()
{
int n,x;
while(scanf("%d",&n),n)
{
x=n&-n;
printf("%d\n",n+x+(n^n+x)/x/4);
}
}
x呢 是最后一個1出現(xiàn)的
n+x 是從后往前第一個01轉(zhuǎn)化為10
n^n+x/x/4就是把所有后面的1后移了
Orz阿Orz。。。。。。