信息存储
- 十六进制表示法
- 0x开头
- 字数据大小
- 寻址和字节顺序
- 大端法/小端法
- 大端法/小端法
- 布尔代数
- C中逻辑运算
- C中移位运算
- 右移(算数/逻辑)
整数表示
无符号数编码
补码编码
各种转换
-
有无符号数之间的转换
-
不同字长整数之间的转换
- 小->大
- 无符号数:补零
- 有符号数:补符号位
- 大->小
- 截断(取模)
- 小->大
整数运算
无符号数
-
加法
-
取反
-
乘法
-
与整数相乘
优化为加减和移位相组合 -
除以2的幂
- 逻辑右移
补码
- 加法
- 非
其中-x
可以表示为补码 - 乘法
- 与整数相乘
优化为加减和移位相组合 - 除以2的幂
- 算术右移
x<0
时,加入偏置(1<<k)-1
- 算术右移
浮点数
IEEE浮点表示
- 形式
$ V=(-1)^s × M × 2^E$- s:符号
- M:尾数
- E:阶码
- 格式
- 单精度时 1+8+23
- 双精度时 1+11+52
- 编码值
- 规格化
- 其中偏置量bias与E的位数k有关
\(bias = 2^{k-1} - 1\) - 非规格化
- 无穷大
- NaN(不是一个数)
- 规格化
示例
舍入
其中,向偶数舍入:
- 目的:避免统计偏差(一半向上舍入,一般向下舍入)
- 二进制中向偶数舍入:0为偶,1为奇