想到哪写到哪
交换两个数字
void swap(int & a, int & b){
a ^= b;
b ^= a;
a ^= b;
}
判断奇偶
if(1 == (n & 1)) // 奇数
if(0 == (n & 1)) // 偶数
乘以二和除以二
n << 1 // 乘以二
n >> 1 // 除以二
n << x // 乘以二的x次方
n >> x // 除以二的x次方
n << 1 | 1 // 乘以二然后加一
求最低位的1
#define lowbit(x) (x)&(-(x))
位运算实现加法
int add(int a, int b) {
if (0 == b) {
return a;
}
return add(a ^ b, (a & b) << 1);
}
位运算实现减法(从计算机组成原理里面学到的)
int sub(int a, int b) {
return add(a, ~b + 1);
}
位运算实现乘法(快速幂的一个模板)
unsigned int mult(int a, int b)