int ret = 3; // 011
int i = 2;
ret ^= 1 << i; // 111
判断奇偶
判断奇偶,实际上就是判断二进制表示的最后一位是否为 1
n = 5;
if (n & 1) // 只适用于正整数,但是效率更高
cout << n << " 是奇数" << endl;
// 常规方法
if (n % 2 != 0) // 适用于正、负数
cout << n << " 是奇数" << endl;
简单快速幂
double quickPow(double base, int p) {
double ret = 1.0;
int q = abs(p);
while (q > 0) {
if (q & 1)
ret *= base;
base *= base;
q >>= 1;
}
return p > 0 ? ret : 1 / ret;
}