2015-10-13 97 views
0

如何將106十進制數轉換爲9位浮點數,其中msb是帶有4位指數和4位尾數的符號?可能嗎?十進制浮點數9位

+0

爲了制定一個答案,瞭解這個浮點格式是否遵循用於IEEE-754二進制浮點格式的慣例將是有用的。特別是,它是否使用了一個有偏指數,其指數值0保留給零和非正規數,並且指數值0xF(即十進制15)爲無窮大和NaN保留? – njuffa

+0

是IEEE-754格式 – Austin

+0

由於IEEE 754沒有指定9位格式,所以「IEEE 754」本身還不夠好。例如,我們仍然需要知道指數偏差是什麼。 (基於確實存在的IEEE 754格式,我猜* 7的指數偏差,但這是一個猜測。)如果您有示例值和相應的位模式,這將有助於理解格式。 –

回答

2

每通過OP註釋,所討論的浮點格式遵循IEEE-754規範,所以它使用與隱式整數位尾數表示,並且具有最小的指數編碼一個偏置指數爲零和非正規數和所保留的最大的指數編碼保留給infinities和NaNs。

106(十進制)= 1.10101 * 2 (二進制)。在所提出的IEEE型九比特浮點格式中,指數偏差爲7.歸一化操作數的大小爲2 -6≤| x | 。因此,106是描述範圍自2 = 256

然而,106是不能表示準確,因爲它需要五個分數尾數位,而只有四個由所提出的格式提供內。使用舍入到最接近或者偶數的最接近的可表示的數字是1.1010 * 2 = 104.其二進制編碼是0_1101_1010。

+0

我想你想要2^8 = 256(所以'106' *是*在可表示的範圍內,雖然在舍入之前實際上不能表示)。而106是'1.10101 * 2^6',而不是'1.10101 * 2^8'。 –

+0

@MarkDickinson:你說得對,不知道我是怎麼弄錯的,除了我在第一杯咖啡前發佈的。我馬上解決這個問題。 – njuffa

+0

是的,對於其他優秀答案的挑剔表示歉意。 (我已經upvoted。) –