在16位、32位和64位IEEE-754系统中,可以表示什么范围的数字?

在16位、32位和64位IEEE-754系统中,可以表示什么范围的数字?

我知道浮点数是如何表示的,但恐怕还不够。

总的问题是:

对于给定的精度(就我的目的而言,基数10中的精确小数位数),16位、32位和64位IEEE-754系统的数字范围是多少?

具体来说,我只对精确到+/-0.5(1位)或+/-0.0005(千分之一位)的16位和32位数字的范围感兴趣。


犯罪嫌疑人X
浏览 1291回答 3
3回答

温温酱

为某一给定IEEE-754浮点数X,如果2^E&nbsp;<=&nbsp;abs(X)&nbsp;<&nbsp;2^(E+1)那么距离X到下一个可表示的最大浮点数(埃普西隆)是:epsilon&nbsp;=&nbsp;2^(E-52)&nbsp;&nbsp;&nbsp;&nbsp;%&nbsp;For&nbsp;a&nbsp;64-bit&nbsp;float&nbsp;(double&nbsp;precision) epsilon&nbsp;=&nbsp;2^(E-23)&nbsp;&nbsp;&nbsp;&nbsp;%&nbsp;For&nbsp;a&nbsp;32-bit&nbsp;float&nbsp;(single&nbsp;precision) epsilon&nbsp;=&nbsp;2^(E-10)&nbsp;&nbsp;&nbsp;&nbsp;%&nbsp;For&nbsp;a&nbsp;16-bit&nbsp;float&nbsp;(half&nbsp;precision)根据上述方程式,我们可以计算出下列各点:为半精度...如果您希望获得+/-0.5(或2^-1)的精度,则该数字的最大大小为2^10。任何大于此的值,浮点数之间的距离都大于0.5。如果您想要一个+/-0.0005的精度(大约2^-11),那么这个数字的最大大小是1,任何大于这个值的值,浮点数之间的距离都大于0.0005。为单精度...如果希望精度为+/-0.5(或2^-1),则该数字的最大大小为2^23。任何大于此和浮点数之间的距离都大于0.5。如果您希望获得+/-0.0005(约2^-11)的精度,则该数字的最大大小为2^13。任何大于此的值和浮点数之间的距离都大于0.0005。为双精度...如果希望精度为+/-0.5(或2^-1),则该数字的最大大小为2^52。任何大于此和浮点数之间的距离都大于0.5。如果要获得+/-0.0005(约2^-11)的精度,则该数字的最大大小为2^42。任何大于此和浮点数之间的距离都大于0.0005。

Qyouu

对于浮点整数(我将用ieee双精度给出我的答案),1到2^53之间的每一个整数都是完全可表示的。在2^53以上,完全可表示的整数通过增加2的幂来分隔。例如:2^53+2和2^54之间的第二个整数可以精确表示。2^54+4和2^55之间的第四个整数可以精确地表示。2^55+8和2^56之间的每8个整数都可以精确地表示。2^56+16和2^57之间的每16个整数都可以精确地表示。在2^57+32和2^58之间的每32个整数都可以精确地表示。2^58+64和2^59之间的每64个整数都可以精确地表示。2^59+128和2^60之间的每128个整数都可以精确表示。在2^60+256和2^61之间的每256个整数都可以精确地表示。2^61+512和2^62之间的每512个整数都可以精确表示。......不完全可表示的整数被四舍五入到最近的可表示整数,因此最坏的情况是舍入为可表示整数之间的间隔的1/2。

largeQ

从Peter R的链接到MSDN Ref的精确引用可能是一个很好的经验法则,但当然现实要复杂得多。“浮点”中的“点”是双星小数点而不是小数点有一种方法可以打败我们的直觉。典型的例子是0.1,它只需要一个小数位数的精度,但根本不能用二进制表示。如果你有周末要消磨时间,看看关于浮点算法,每个计算机科学家都应该知道些什么?..您可能特别感兴趣的是精密度和二进制到十进制转换.
打开App,查看更多内容
随时随地看视频慕课网APP