1.计算一个数的二进制中1的个数
int count1ofbinary(int n){
int count = 0;
unsigned int flag = 1;
while(flag){
if(n&flag)
count++;
flag = flag<<1;
}
return count;
}
2.判断一个数是否为2的次幂
bool judge(int n){
n = n&(n – 1);
if(n)
return false;
return true;
}
3.判断奇偶,偶数最后一位是0.
bool falg = n&1 = = 1;
4.大小写转换(原理:ASCLII编码,字符所对应的其实是数字)
(‘a’ | ‘ ’) = ‘a’
(‘A’ | ‘ ’) = ‘a’
(‘b’ & ‘_’) = ‘B’
(‘B’ & ‘_’) = ‘B’
(‘d’ ^ ‘ ’) = ‘D’
(‘D’ ^ ‘ ’) = ‘d’
5.返回比x大的最小2的n次幂数
static int pow2gt(int x){
--x;
x|=x>>1;
x|=x>>2;
x|=x>>4;
x|=x>>8
x|=x>>16;
return x+1;
}