English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

最近上了電腦課 老師上課有教一種 他出一個數字 把他換成IEEE32位元的16進位格式 但是我都聽不懂@@
想請問了解的大大 可以幫我解一題 順便附帶做法 讓我了解IEEE轉換的過程
感激不進>"<

2006-11-13 09:24:16 · 2 個解答 · 發問者 秘密囉一ˇ一 1 in 電腦與網際網路 程式設計

忘記獎題目= =~~
題目是-37.0125(10進位)
轉換成IEEE32位元16進位格式

2006-11-13 09:50:22 · update #1

16進位呢????是C2140CCD嘛???
拜託回答一下是這樣嘛??
有沒有更簡易的作法>"<~還是看不太懂

2006-11-13 15:34:52 · update #2

而且題目是負的喔-37.0125
我們老師有教
正規化--->轉換數值成N*B(n次方)
其中0.1≦N<1
指數n需加上超越值
這些是什麼意思阿???可以解釋一下嘛?
抱歉點數給很低>"<不過我的點數就剩下這些~~
希望你能幫我解答~謝謝

2006-11-13 15:40:09 · update #3

2 個解答

實數的10進位科學記號:± x.y * 10z , 1 <= x < 10 就是,整數只有一位,但不能為 0 10進位,所以可是是 1 ~ 9; 那 2 進呢?實數的 2進位科學記號:± x.y * 10z , 1 <= x < 2 x 只有一種:x = 1!!!那,為何要去浪費一個 bit 去記一定是 1 的東東?也就是說:電腦標準的浮點裡,實數的數值部份只記小數的部分:y指數部份(z)採用超127法:126 = -1, 127 = 0, 128 = 1, 129 = 2。 所以,要把 z + 127 才是它用的值。Float 用 4 bytes 去記,就是 32 個 bits第 1  bit 記正負:0為正,1為負。2 ~ 9 bits記指數:z。第 2 bit 是 z 的正負,3~9是數值10~32 bits記數值:x.y 的 2 進科學記號的小數部份。用了10~32 = 23 bits- => sign bit = 137   = 32 + 4 + 1 = 1000002 + 1002 + 1 = 1001012用去了 6 位!但科學記號時,第一位 1 不記(前述),所以,用了5位。23 - 5 = 18 .0125 = .0078125 + .00390625 + .00048828125 + .000244140625 + .00006103515625 + .000030517578125 + .00000762939453125 + (小於 2-18)    = 2^-7 + 2^-8 + 2^-11 + 2^-12 + 2^-15 + 2^-16 +  2^-18 + (小於 2-18)    = 0.0000001100110011012(後面記不下啦!沒那麼多位!)37.0125 的 2 進位科學記號 = 100101.0000001100110011012             = 1.001010000001100110011012 * 255 + 127 = 132 = 128 + 4 = 100000002 + 1002 = 100001002所以,-37.0125在 Float 是:110000100001010000001100110011012

2006-11-13 21:00:24 補充:
用功點!!
你後來問的問題,不是 琳琳的答案裡有,就是我的答案裡有!

2006-11-13 21:07:49 補充:
問題不在點數的多少!
我已經不是初學者,點數對我已完全沒意義。
不然,你才給 5 點,我為啥要寫那麼詳細?
我想幫的是用功但真的不懂的人!

2006-11-13 14:33:46 · answer #1 · answered by ? 7 · 0 0

http://www.h-schmidt.net/FloatApplet/IEEE754.html
自己玩吧

2006-11-13 10:54:13 · answer #2 · answered by 鳳琳 5 · 0 0

fedest.com, questions and answers