高次方数尾数

Posted 258-333

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高次方数尾数相关的知识,希望对你有一定的参考价值。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
main()

	int n = 13, i;
	for (i = 1; i <= 12; i++)
	
		/*n = (n * 3 + n % 100 * 10) % 1000;*/
		n = n * 13 % 1000;
	
	printf("%d", n);

请问IEEE754标准中,32位所表示的最大正数是多少?老师给的答案是(2-2的-23次方)*2的

请问IEEE754标准中,32位所表示的最大正数是多少?老师给的答案是(2-2的-23次方)*2的127次方,怎么我算的是(2的23次方-1)*2的127次方,我知道尾数M最大值是1.111…111(小数点后23个1),转换成十进制就不太懂了,求大神解释一下,谢谢!

请问IEEE754标准中,32位所表示的最大正数就是(2-2的-23次方)*2;

尾数位数实际上是:1位隐含位+23位尾数=24位。

最大值是1.111…111(小数点后23个1)  

转换为10进制恰好为1+1/2+1/4+...+(1/2)的23次方=2-(1/2)的23次方=2-2的(-23)次方;

扩展资料:

IEEE 754规定了四种表示浮点数值的方式:单精确度(32位)、双精确度(64位)、延伸单精确度(43比特以上,很少使用)与延伸双精确度(79比特以上,通常以80位实现)。只有32位模式有强制要求,其他都是选择性的。

大部分编程语言都有提供IEEE浮点数格式与算术,但有些将其列为非必需的。例如,IEEE 754问世之前就有的C语言,有包括IEEE算术,但不算作强制要求(C语言的float通常是指IEEE单精确度,而double是指双精确度)。

参考技术A 简单点说,尾数M明显大于1小于2,你说的那个尾数不在这个范围内,所以你算的不对,要注意尾数M是有小数点的。
要仔细说老师说的为什么是对的呢,这就涉及到二进制与十进制转化的问题,小数点之前每个数位权重依次是2^0,2^1,2^2,2^3,..., 小数点之后每个数位权重依次是2^(-1),2^(-2),2^(-3),..., 所以M转化成十进制应该是2^0+2^(-1)+2^(-2)+...+2^(-23), 等比数列求和结果就是2-2^(-23).追问

谢谢

追答

不客气~

参考技术B 你的理解是对的
尾数位数实际上是:1位隐含位+23位尾数=24位。
最大值是1.111…111(小数点后23个1)
转换为10进制恰好为1+1/2+1/4+...+(1/2)的23次方=2-(1/2)的23次方=2-2的(-23)次方
其他的没有问题追问

在等回答的时候,我自己突然想明白了,老师教过,111转成十进制是2的3次方减1,n个1转成十进制是2的n次方减1,所以111…1(24个1)转成十进制就是2的24次方减1,1.1111…1就等于是把这个数向右移动23位,等于让这个数乘以2的-23次方,就等于老师说的2减去2的-23次方

还是很谢谢你

本回答被提问者采纳
参考技术C 简单点说,尾数M明显大于1小于2,你说的那个尾数不在这个范围内,所以你算的不对,要注意尾数M是有小数点的 参考技术D 为什么不是2^128次方呀?

以上是关于高次方数尾数的主要内容,如果未能解决你的问题,请参考以下文章

将十进制数表示成ieee754标准的32浮点规格化数 27/64

常用面试/笔试开源小项目21~30

行政测试-数量关系

请问IEEE754标准中,32位所表示的最大正数是多少?老师给的答案是(2-2的-23次方)*2的

数据结构与算法数学——回文数

求C语言中float型数据的表示范围