机器字
- 机器字长:指数据地址长度,分为32位和64位。
- 机器字地址:指机器字的第一个字节的地址。
字节序
一个机器字内的各个字节的排列方式,分为大端和小端。
- 大端:最低权重字节占据高地址。
- 小端:最低权重字节占据低地址。

整数的二进制编码
无符号数
也称为原码表示。
- 取值范围:
有符号数
也称为补码表示,二进制最高位为符号位,权重为。
- 对于非负数:补码=原码
- 对于负数:补码=绝对值的反码(原码各位取反)+1
- ~ 补码是相反数的补码的反码+1!
- 取值范围:
- ! 相同位数的无符号数与有符号数混合使用时,有符号数默认转换为无符号数
无符号数与有符号数间的转换

- ! 把负整数映射到无符号数的高数值范围
运算
无符号数加法
补码加法
逻辑右移
最高位补 。 相当于无符号数的 。
算数右移
最高位补和原本最高位相同的值。 相当于带符号数的 要实现向零取整,当 为负数时,需要添加一个偏置量 ,即计算
- ~ 无论是逻辑右移还是算数右移,都相当于除法后向下取整
浮点数的二进制编码
- 符号:s
- 有效数:,控制精度
- 指数:E,控制表示范围

- 单精度:E8M23
- 双精度:E11M52
规格化浮点数
满足 。
- 真实的 E 需要减去一个偏置量
- 单精度数:127
- 双精度数:1023
- 小数域第一位隐含为 1
- frac 为 时 M 为 1.0
例:

- frac 为 时 M 为 1.0
例:
非规格化浮点数
- 满足
- E=1-Bias
- M 的第一位不再隐含 1
- 满足
- :表示
- :NaN

小浮点数示例:

向偶数舍入
- 若大于 ,进位,若小于 ,舍去
- 若等于 ,即最低有效位右侧为 ,若最低有效位为 ,舍去,若为 ,进位

- 舍入操作可能导致溢出,如 63 舍入后为 10.000,此时需调整为 1.000,指数位加一
类型转换
double或float转int:尾数部分截断,若溢出或浮点数为 NaN,则转换结果无意义,一般置为 Tmin 或 Tmaxint转double:精确转换int转float:不会溢出,但是可能舍入