2011-12-20 137 views
-3

我無法理解即將到來的考試的16位浮點數。 我在二進制中有以下數字(轉換後);16位浮點

+11100.111000 = 28.875 。我很容易得到28,但我怎樣才能得到'875'?

由於

+0

「get」以什麼方式?算法轉換爲十進制字符串? – harold 2011-12-20 18:21:10

+1

你的意思是28.875基數10,而不是基數2,對不對? – 2011-12-20 18:26:58

+2

這看起來不像是假設的十進制(二進制?)點的浮點。如果它是浮點數,則通常不會在中間有一個小數點。 – 2011-12-20 18:29:08

回答

1

在數字,數字的值被乘以一個常數,這取決於位置。讓我們舉一個例子爲一個十進制數:

ab.cd = A * 10 + B * 10 + C * 10 -1 + * d 10 -2

它對二進制數的作用類似。對於該部分,以在二進制小數點在您的示例的權利:

0.111000 = 2 -1 + 2 -2 + 2 -3 = 0.5 + 0.25 + 0.125 = 0.875 。

+0

好的,那是對的,但是,我從哪裏得到這些數字? – 2011-12-20 18:24:18

+0

它們只是1/2,1/4,1/8 - 只是正常二進制數的倒數 – 2011-12-20 18:26:29

+0

@ChrisArom哪些數字?我的答案的二進制部分來自你。如果你的意思是2^-1(依此類推),那是因爲它是一個基數爲2(即二進制)的數字。對於基數10(十進制),它將是10^-1。對於base-8(八進制),它將是8^-1。 – 2011-12-20 18:30:28

1

左側。是乘以2,右側是由2

鴻溝所以你有0.1110

0.1 = 0.5
0.01 = 0.25
0.001 = 0.125
----------- ----- +
0.875

+0

非常感謝! ;) – 2011-12-20 18:27:25