软考-软件设计:浮点小数的表示 作者:马育民 • 2025-04-01 00:35 • 阅读:10009 需要掌握: 1. [软考-软件设计:n位二进制定点小数,原码、反码、补码、移码的取值范围](https://www.malaoshi.top/show_1GWrPBkFncR.html "软考-软件设计:n位二进制定点小数,原码、反码、补码、移码的取值范围") # 浮点数表示 ``` 浮点数N = 尾数 * 基数^指数 ``` **解释** - 尾数:一般为小数,一般用 **补码** 表示 - 基数:在计算机中,默认表示 `2` - 指数:也称为 **阶码**、**阶数**,一般为整数,一般用 **移码** 表示 ### 特点 1. **阶码的位数** 决定数的表示 **范围**,位数 **越多范围越大** 2. **尾数的位数** 决定数的有效 **精度**,位数 **越多精度越高** # 比较两个浮点小数运算过程 ``` 对阶 > 尾数计算 > 结果格式化 ``` **解释:** - 对阶:让两个数的指数(阶码)相等。 - 对阶时,**小数向大数看齐** - 对阶是通过较小数的 **尾数右移** 实现的 # 例子 某种机器的浮点数表示格式如下(允许非规格化表示) ``` 阶符1位 阶码4位 数符1位 尾数10位 ``` 若阶码以补码表示,尾数以原码表示,则 ``` 1 0001 0 0000000001 ``` 表示的浮点数是多少 ### “允许非规格化表示” 是什么意思 默认前面是尾数、后面是阶码 “允许非规格化表示”,前面是阶码、后面是尾数 ### 展示数据 ``` 阶符1位 阶码4位(补码) 数符1位 尾数10位(原码) 1(负数) 0001 0(正数) 0000000001 ``` ### 将阶码 转 十进制 ``` 阶码4位(补码):0001 // 默认为整数 反码是: 0000 原码是: 1111 换算十进制: 15 // 注意:阶符是1,表示负数 最终结果: -15 ``` ### 将尾数 转 十进制 ``` 尾数10位: 0000000001 // 默认为小数 换算十进制: 2^-10 ``` ### 结果 浮点数是: ``` 2^-10 * 2^-15 ``` 原文出处:http://malaoshi.top/show_1GWrWRNNLRb.html