一、二进制
1、判断二进制的最右一位是否为1
n为二进制数
(1)与运算
若 n & 1 = 0,则 n 二进制 最右一位 为 0
若 n & 1 = 1,则 n 二进制 最右一位 为 1
(2)巧用n&(n - 1)
n & (n - 1):二进制数字 n 最右边的 1 变成 0 ,其余不变
2、二进制表示的整数的范围
32位的有符号整数n,表示范围为
-2^31 <= n <= 2^31 - 1
- [−2147483648,2147483647]
当n为−2147483648时,下面代码会出错
long int tmp = -n;
需要这么写:
long tmp = n;
tmp = -tmp;
二、库函数
1、pow()
#include <math.h>
// 求x的y次方,x和y都可以是整数或者小数
int result = pow(x, y);