我正在阅读有关exponent bias
浮点数的this文章,并说明如下:
n IEEE 754浮点数,指数偏差 工程意义上的单词 - 存储的值是偏移的 指数偏差的实际值。偏见是因为指数 必须是有符号的值才能表示两者都很小 和巨大的价值观,但两个补充,通常的代表 签名值会使比较更难。要解决这个问题了 指数在存储之前是有偏差的,通过调整其值来放置 它在适合比较的无符号范围内。通过安排 字段使符号位位于最高位位置, 中间的偏差指数,然后至少是尾数 有效位,结果值将被正确排序, 是否将其解释为浮点值或整数值。这个 允许使用固定的高速比较浮点数 点硬件。
我也从维基百科的article中找到了关于偏移二进制的解释:
这导致“零”值由1表示 在最高有效位中,在所有其他位中为零,并且通常 除了使用两个补码之外,效果很方便 最重要的位是反转的。它也有后果 在逻辑比较操作中 ,得到的结果与...相同 用二进制补码数值比较运算,而在 两个补码表示法,逻辑比较符合两个符号 补充数值比较操作当且仅当数字 被比较有相同的标志。否则的感觉 比较将被反转,所有负值都被视为 大于所有正值。
我真的不明白他们在这里谈论的是什么样的比较。有人可以用一个简单的例子解释一下吗?
答案 0 :(得分:1)
[sign bit] [unbiased exponent] [mantissa]
例如,如果指数是2的补码3位二进制数,并且尾数是4位无符号二进制数,那么你有
1 010 1001 = 4.5
1 110 0111 = 0.21875
你可以看到第一个比第二个更大,但为了解决这个问题,计算机必须计算1.001 x 2^2
和0.111 x 2^(-2)
,然后比较得到的浮点数。这对于浮点硬件来说已经非常复杂,如果这台计算机没有这样的硬件,那么......
所以号码存储为
[sign bit] [biased exponent] [mantissa]
对指数使用相同的3位二进制数(此时有偏差;请参阅a related question)和无符号4位尾数,我们有
1 101 1001 = 4.5
1 001 0111 = 0.21875
但现在比较很容易!您可以将这两个数字视为整数11011001
和10010111
,并看到第一个数字明显更大:即使是计算机也很明显,因为整数比较很容易。这就是使用有偏见的指数的原因。