【原】浮點(diǎn)數(shù)的二進(jìn)制表示
個(gè)人學(xué)習(xí)--計(jì)算機(jī)組成原理篇
問(wèn)題:2009年12月1日
今天在網(wǎng)上看到-12.5轉(zhuǎn)化成32位二進(jìn)制浮點(diǎn)數(shù)為
11000001 01001000 00000000 00000000
哪位高人能分別給出具體具體的十進(jìn)制數(shù)轉(zhuǎn)化成二進(jìn)制浮點(diǎn)數(shù),
還有二進(jìn)制浮點(diǎn)數(shù)轉(zhuǎn)化成十進(jìn)制數(shù)的過(guò)程。
為了能更詳細(xì)請(qǐng)給出-1.997436, 2.025675這兩個(gè)數(shù)的具體轉(zhuǎn)換過(guò)程
答案:
整數(shù)怎樣轉(zhuǎn)2進(jìn)制,小數(shù)怎樣轉(zhuǎn)2進(jìn)制就不說(shuō)了。
12.5:
1. 整數(shù)部分12,二進(jìn)制為1100; 小數(shù)部分0.5, 二進(jìn)制是.1,先把他們連起來(lái),從第一個(gè)1數(shù)起取24位(后面補(bǔ)0):
1100.10000000000000000000
這部分是有效數(shù)字。(把小數(shù)點(diǎn)前后兩部分連起來(lái)再取掉頭前的1,就是尾數(shù))
2. 把小數(shù)點(diǎn)移到第一個(gè)1的后面,需要左移3位, 加上偏移量127:127+3=130,二進(jìn)制是10000010,這是階碼。
3. -12.5是負(fù)數(shù),所以符號(hào)位是1。把符號(hào)位,階碼和尾數(shù)連起來(lái)。注意,尾數(shù)的第一位總是1,所以規(guī)定不存這一位的1,只取后23位:
1 10000010 10010000000000000000000
把這32位按8位一節(jié)整理一下,得:
11000001 01001000 00000000 00000000
就是十六進(jìn)制的 C1480000.
2.025675
1. 整數(shù)部分2,二進(jìn)制為10; 小數(shù)部分0.025675, 二進(jìn)制是.0000011010010010101001,先把他們連起來(lái),從第一個(gè)1數(shù)起取24位(后面補(bǔ)0):
10.0000011010010010101001
這部分是有效數(shù)字。把小數(shù)點(diǎn)前后兩部分連起來(lái)再取掉頭前的1,就是尾數(shù): 00000011010010010101001
2. 把小數(shù)點(diǎn)移到第一個(gè)1的后面,左移了1位, 加上偏移量127:127+1=128,二進(jìn)制是10000000,這是階碼。
3. 2.025675是正數(shù),所以符號(hào)位是0。把符號(hào)位,階碼和尾數(shù)連起來(lái):
0 10000000 00000011010010010101001
把這32位按8位一節(jié)整理一下,得:
01000000 00000001 10100100 10101001
就是十六進(jìn)制的 4001A4A9.
-1.99744
還需要詳細(xì)說(shuō)嗎?
如果只有小數(shù)部分,那么需要右移小數(shù)點(diǎn). 比如右移3位才能放到第一個(gè)1的后面, 階碼就是127-3=124.
補(bǔ)充一個(gè)浮點(diǎn)二進(jìn)制數(shù)手工轉(zhuǎn)換成十進(jìn)制數(shù)的例子:
假設(shè)浮點(diǎn)二進(jìn)制數(shù)是 1011 1101 0100 0000 0000 0000 0000 0000
按1,8,23位分成三段:
1 01111010 10000000000000000000000
最后一段是尾數(shù)。前面加上"1.", 就是 1.10000000000000000000000
下面確定小數(shù)點(diǎn)位置。階碼是01111010,加上00000101才是01111111(127),
所以他減去127的偏移量得-5。(或者化成十進(jìn)制得122,122-127=-5)。
因此尾數(shù)1.10(后面的0不寫了)是小數(shù)點(diǎn)右移5位的結(jié)果。要復(fù)原它就要左移5位小數(shù)點(diǎn),得0.0000110, 即十進(jìn)制的0.046875
最后是符號(hào):1代表負(fù)數(shù),所以最后的結(jié)果是 -0.046875
還要注意其他機(jī)器的浮點(diǎn)數(shù)表示方法可能與此不同. 不能任意移植
PS:最近對(duì)計(jì)算機(jī)組成原理比較感興趣,學(xué)習(xí)了一下基礎(chǔ)的計(jì)算機(jī)數(shù)據(jù)表示方法,感覺(jué)受益匪淺。
posted on 2009-12-01 15:12 龍櫻 閱讀(1304) 評(píng)論(0) 編輯 收藏 所屬分類: 非主流技術(shù)類