CSAPP 第二章 笔记
信息存储
- 十六进制表示法
- 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为奇

浙公网安备 33010602011771号