我已经收到了这两个问题,但我无法正确地解决浮点问题,所以如果有人能提供一些关于我应该如何解决这些问题的建议,我将不胜感激。
可以用 10 位尾数和 6 位指数的 2s 补码归一化浮点表示法表示的最小和最大数是多少?
对于上述尾数和指数,最接近 0 的两个值是多少?想想下溢和溢出发生在哪里。
我已经收到了这两个问题,但我无法正确地解决浮点问题,所以如果有人能提供一些关于我应该如何解决这些问题的建议,我将不胜感激。
可以用 10 位尾数和 6 位指数的 2s 补码归一化浮点表示法表示的最小和最大数是多少?
对于上述尾数和指数,最接近 0 的两个值是多少?想想下溢和溢出发生在哪里。
(我会将其添加为评论,但在某些时候我失去了评论的能力。也许在某些时候声誉会以某种方式下降。)
确保区分“最小数”的含义和“最大负数”的含义。这些是不同的,您可能会根据您在作业中回答这个问题的方式而失去学分。鉴于第二个问题要求以这种格式表示的最小数字,我认为第一个问题实际上应该要求最大负数(离零最远的负数 - 幅度最大的负数)。
如之前的答案所述,我建议您手动解决这些问题。
问问自己:符号、指数和尾数的哪种组合会产生最大/最小的数字?如果你知道如何从二进制转换为十进制,我想你应该可以轻松解决这个问题。如果您不知道,那么我建议您从那里开始并逐步提高。
如果您谈论的是 IEE754 变体,您可以查看Wikipedia IEEE754-1985并自己计算完全标准化的数字,给定分数和指数的不同大小。
现在忘记这个标志,这只是一个简单的位翻转。
最大的分数都是一位,对于十位尾数,是:
1 1 1 1 1 1 1 1 1 1
1 + - + - + - + -- + -- + -- + --- + --- + --- + ----
2 4 8 16 32 64 128 256 512 1024
= 1024 + 512 + 256 + 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1
-----------------------------------------------------
1024
(隐式1
加十位不断减半的分数)。那就是2047/1024
。
关于指数,6 位指数的最高非特殊值(特殊值如NaN
or ±Inf
)是 2 6 -2 或 62(范围是 0 到 62)。
但是,因为您需要正指数和负指数,所以减去 31(偏差,最大非特殊值的一半)。这为您提供了 -30 到 31 的范围(-31 可以在此处打折,因为它没有标准化)。
所以最大和最小(最负)的值是or 。±(2047/1024)x231
±4292870144
类似地,最接近零的两个值具有 -30 的指数字段(最小归一化)和全零的尾数字段,通过隐式1
,给您1
。
这些值为或。±(1)x2-30
±0.000000000931322574615478515625
你应该打印出那个维基百科页面和这个答案,然后坐下来,直到你理解它们。我不介意在这里帮助您,但是,如果您在作业中重复我的答案,您几乎肯定会被抓住(如果您的教育工作者有任何智慧,尽管不能保证这一点)。
为了把这个答案用你自己的话来表达(因此不会被抄袭),你必须理解它。