1.补码
1.对于无符号的整形,直接表示就行
2.对于有符号的整形,当最高位表示0(非负数)时,编码C直接看成无符号整数S。当最高位为1(负数)的时候该编码取反得到的编码~C的数值为-1-S。
3.任意两种类型的数值进行运算的时候都是按照32最高位不进位的加减法运算
反码
就是直接把C的每一位取反表示-C,绝对值相差1
一个实用的常数
0x3f3f3f3f,*2不超过int的最大范围
算数右移
把数字同时向右移动,高位以符号位填充,地位越界后舍弃,
位数
一个数b在二进制下有k位,那么k=$\lceil\log_2{(b+1)}\rceil$
检测位
第0~k-1位$n&((1«k)-1)$ 对2进制下k位赋值0$n&(~(1«k))$ 取反:$n xor (1«k)$