为什么负的规格化浮点二进制数不能以11开头?

5
在学习A级计算机时,教材、考试题和老师都反复强调:如果一个负的规格化浮点二进制数以11开头,则该数不是规格化的。例如对于二进制补码中的-11,它可以写成10101的形式,因此规格化后的数字应为10101 00100,这遵循了数字开头没有11的规则。但是对于-1来说,二进制补码版本为11111,那么它的规格化版本应为什么呢?虽然11111 00100的确可行,但它违反了规则,而011111 00101使该数字变为正数,使用了太多位,而10111 00100的结果为-9而非-1。基本上,为什么数字不能以11开头,如何表示负一,请解释一下。

浮点数的确切格式是什么?它不能是IEEE 754(不使用二进制补码,也不指定10位格式),因此请解释哪些位编码哪些值(符号、指数、尾数)以及如何编码(符号/幅度与二进制补码、偏移-偏差与二进制补码等)。 - user395760
我不知道,课程上没有具体说明,我认为它不是什么特别的东西。这些数字用5位表示指数和5位表示尾数,两者都使用二进制补码,很抱歉我不能提供更多帮助。 - Tristan Warren
加上你提供的例子,我现在认为我明白了格式。不幸的是,我不明白为什么负归一化数不能以10开头。你有和老师们讨论过吗? - user395760
老师们只是从书本和考卷上读取,他们自己并不真正了解它。如果允许尾数使用额外的位,这会解决问题吗? - Tristan Warren
1个回答

1
你说得对,-1的二进制标准化版本是1.100 0001。
这种数学方法的问题在于没有人真正使用它。因此,你会发现很难找到任何该领域的“专家”。0.1和1.0规则对于学习概念非常有用。然而,概念规则并不总是适用于现实世界。标准化的目的是在给定的边界内尽可能地保持准确性。因此,如果你将指数设置为0010,符合你的规则... 1.010 0010你会失去准确性(在-1的情况下不是这样,但潜在的风险是存在的)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接