发布网友 发布时间:2022-04-21 02:43
共1个回答
热心网友 时间:2022-06-17 12:44
摘要我们已经知道,浮点数是采用科学计数法来表示一个数字的,它的格式可以写成这样:V = (-1)^S * M * R^E其中各个变量的含义如下:S:符号位,取值 0 或 1,决定一个数字的符号,0 表示正,1 表示负M:尾数,用小数表示,例如前面所看到的 8.345 * 10^0,8.345 就是尾数R:基数,表示十进制数 R 就是 10,表示二进制数 R 就是 2E:指数,用整数表示,例如前面看到的 10^-1,-1 即是指数如果我们要在计算机中,用浮点数表示一个数字,只需要确认这几个变量即可。假设现在我们用 32 bit 表示一个浮点数,把以上变量按照一定规则,填充到这些 bit 上假设我们定义如下规则来填充这些 bit:符号位 S 占 1 bit指数 E 占 10 bit尾数 M 占 21 bit按照这个规则,将十进制数 25.125 转换为浮点数,转换过程就是这样的(D代表十进制,B代表二进制):整数部分:25(D) = 11001(B)小数部分:0.125(D) = 0.001(B)用二进制科学计数法表示:25.125(D) = 11001.001(B) = 1.1001001 * 2^4(B)所以符号位 S = 0,尾数 M = 1.001001(B),指数 E = 4(D) = 100(B)。按照上面定义的规则,填充到 32 bit 上,就是这样:浮点数的结果就出来了,是不是很简单?但这里有个问题,我们刚才定义的规则,符号位 S 占 1 bit,指数位 E 占 10 bit,尾数 M 占 21 bit,这个规则是我们拍脑袋随便定义出来的。如果你也想定一个新规则,例如符号位 S 占 1 bit,指数位 E 这次占 5 bit,尾数 M 占 25 bit,是否也可以?当然可以。按这个规则来,那浮点数表示出来就是这样我们可以看到,指数和尾数分配的位数不同,会产生以下情况:指数位越多,尾数位则越少,其表示的范围越大,但精度就会变差,反之,指数位越少,尾数位咨询记录 · 回答于2021-11-12分析IEEE32位浮点格式中阶码字段和指数e亲,您好,您的问题我已经看到了,这道题由我来为您解答,打字需要一点时间,请耐心等待一下,谢谢!我们已经知道,浮点数是采用科学计数法来表示一个数字的,它的格式可以写成这样:V = (-1)^S * M * R^E其中各个变量的含义如下:S:符号位,取值 0 或 1,决定一个数字的符号,0 表示正,1 表示负M:尾数,用小数表示,例如前面所看到的 8.345 * 10^0,8.345 就是尾数R:基数,表示十进制数 R 就是 10,表示二进制数 R 就是 2E:指数,用整数表示,例如前面看到的 10^-1,-1 即是指数如果我们要在计算机中,用浮点数表示一个数字,只需要确认这几个变量即可。假设现在我们用 32 bit 表示一个浮点数,把以上变量按照一定规则,填充到这些 bit 上假设我们定义如下规则来填充这些 bit:符号位 S 占 1 bit指数 E 占 10 bit尾数 M 占 21 bit按照这个规则,将十进制数 25.125 转换为浮点数,转换过程就是这样的(D代表十进制,B代表二进制):整数部分:25(D) = 11001(B)小数部分:0.125(D) = 0.001(B)用二进制科学计数法表示:25.125(D) = 11001.001(B) = 1.1001001 * 2^4(B)所以符号位 S = 0,尾数 M = 1.001001(B),指数 E = 4(D) = 100(B)。按照上面定义的规则,填充到 32 bit 上,就是这样:浮点数的结果就出来了,是不是很简单?但这里有个问题,我们刚才定义的规则,符号位 S 占 1 bit,指数位 E 占 10 bit,尾数 M 占 21 bit,这个规则是我们拍脑袋随便定义出来的。如果你也想定一个新规则,例如符号位 S 占 1 bit,指数位 E 这次占 5 bit,尾数 M 占 25 bit,是否也可以?当然可以。按这个规则来,那浮点数表示出来就是这样我们可以看到,指数和尾数分配的位数不同,会产生以下情况:指数位越多,尾数位则越少,其表示的范围越大,但精度就会变差,反之,指数位越少,尾数位