整数的原码 , 反码 , 补码
小数的原码 , 反码 , 补码
普通方法 (分数)
不管整数还是小数,第一位都是符号位正数0,负数1,永远都不变
乘2取整法 (小数)
“乘 2 取整,顺次排列”
- 乘 2:将十进制小数部分乘以 2。
- 取整:取出乘积的整数部分(0 或 1),作为二进制小数的一位。
- 剩小:将乘积的小数部分留下,作为下一次计算的基数。
- 重复:重复上述步骤,直到小数部分为 0,或者达到要求的精度(如保留 n 位)。
- 排列:将取出的整数部分按从上到下的顺序排列。
IEEE754 题型 (阶码,尾数)
阶码 / 移码
-
比如浮点数 0.1101×2 的 3 次方 中,“3” 就是 阶码 ,它表示这个数要乘以 23(即放大 8 倍)。
-
移码 = 阶码(真值)+ 偏置值
其中 “偏置值” 是固定数,通常取 2n−1(n 是阶码的位数):
这里11.375,11用前面教的整数转法,0.375用前面教的小数转法,然后凑一起就是了
这里的 130 转换为二进制就是 10000010,也就是阶码 (8位)
尾数就是这里的011011 然后加上0,因为要求尾数23位,所以对应要补上17个0
第一题:IEEE754 转 十进制
第二题: 十进制 转 IEEE754
符号位计算
双符号位计算
单符号位计算
-y补=y补全部取反再+1
负数补码变原码有两种方式,1是先减再取反,2是取反后加
这是两个判断溢出的口诀:
1.符号为00变1,上溢出,11变0下溢出
2.同号溢出,异号不溢出。正正为正(上)溢出,负负为负(下)溢出
乘除运算
求 x ✖️ y ( 原码一位乘 )
求 x ✖️ y ( 阵列乘法器 )
求 x ➗ y ( 除法运算 )
浮点运算 ( 浮点加减运算 )
步骤: 对阶 / 尾数运算 / 规格化
- 对阶(核心步骤)
原则: “小阶向大阶看齐” (即阶码小的数,其尾数右移)。
- 尾数运算
目的:将对齐后的两个尾数进行加减.
- 规格化(关键步骤)
目的:使结果的尾数满足规格化形式(通常是 1.xxx... 或 0.1xxx...),保证精度。
-
左规 :
- 原因:尾数运算结果的最高位是 0(例如 0.00101...)。
- 操作:尾数左移 1 位,阶码减 1。重复直到最高位为 1。
-
右规 :
- 原因:尾数相加结果溢出(例如 10.010... 或 11.000...),即符号位与最高数值位不同。
- 操作:尾数右移 1 位,阶码加 1。(右规最多只需要做 1 次)。
- 舍入(处理误差)
目的:在对阶或右规时,尾数右移会丢失低位,需要通过舍入来减小误差。
-
0 舍 1 入法:类似十进制的四舍五入。如果移出的最高位是 1,则尾数末位加 1;如果是 0,则舍去。
- 缺点:可能会导致再次溢出,需要再进行一次右规。
-
恒置 1 法:只要有移出位(不管是 0 还是 1),就把尾数的末位置为 1。
- 优点:简单,不需要额外的加法运算。
-
截断法(恒舍法) :直接丢弃移出的位。
- 缺点:误差累积,数值偏小。
- 判溢出
目的:判断最终结果是否超出了浮点数的表示范围。
-
判断依据:阶码是否溢出(尾数溢出已在规格化中处理)。
-
上溢(Overflow) :阶码超过了最大表示值。
- 结果为 +∞ 或 −∞。
-
下溢(Underflow) :阶码小于最小表示值。
- 结果极接近 0,通常按机器零(Machine Zero)处理。
考试常见考点
- 对阶方向:一定是小阶变大阶,尾数右移。
- 左规次数:可能需要多次。
- 右规次数:最多 1 次。
计算 x ➕ y
两位符号位可以判断运算结果是否溢出
计算 x ➖ y ( 步骤讲解 )
第六章 ( 手写作业 )
1. 计算 x ➕ y
2. 计算 x ➖ y ( 本质是 X ➕ (➖y) )
3. 计算 x ✖️ y
结束的判断标准是 y 小数点后有几位 ( 练习题都是 4 位 , 4 次 )
4 .计算 x ➗ y
第七章 ( 手写作业 )
1. 寻址方式
2. 指令格式设计
五次的解释
例 3 的答案