定点数的表示
机器数的编码表示
原码表示法
- 纯小数原码:−(1−2−n)≤x≤1−2−n
- 纯整数原码:−2n+1≤x≤2n−1
- 真值零的原码有正零和负零两种形式
补码表示法
- 补码的算术移位:变形补码(模 4 补码),双符号位
- 补码的符号位参与运算
反码表示法
- 正数反码与原码相同,负数反码为符号位不变、数值位取反
移码表示法
- 在真值 X 上加一个常数(偏置值),常用于浮点数的阶码
定点数的运算
移位运算
- 算术移位:有符号数,符号位不变,数值位按规则移位
- 正数:原码/补码/反码均添 0
- 负数:原码添 0,补码左移添 0 右移添 1,反码均添 1
- 逻辑移位:视为无符号数,左右均添 0
- 循环移位:带 CF 大循环与不带 CF 小循环
加减法运算
- 补码加减运算:[A+B]补=[A]补+[B]补(modM),[A−B]补=[A]补+[−B]补(modM)
溢出判别
- 采用一位符号位:符号位与数值位进位异或
- 采用双符号位(模 4 补码):结果符号位 01 为正溢出,10 为负溢出
- 根据数据位进位:最高位进位与次高位进位不同则溢出
乘法运算
- 原码一位乘法:符号位单独处理,数值位累加右移
- 补码一位乘法(Booth 算法)
除法运算
- 原码除法(不恢复余数法/加减交替法)
- 补码除法(加减交替法)
数据的存储和排列
- 大端方式:高位字节存放在低地址(符合人类阅读习惯)
- 小端方式:低位字节存放在低地址(利于计算机处理)
- 边界对齐:数据按自身大小的整数倍地址存放