浮點數(shù)的十進制轉(zhuǎn)十六進制原理:
第一、這里有個誤區(qū):浮點數(shù)的十進制?
浮點數(shù)在計算機的內(nèi)存里,幾乎都是以二進制格式存儲的,如果你要強行將其轉(zhuǎn)成10進制,那么又有新的問題出現(xiàn),10進制的表達方式是什么?
如123456,可以用6個字節(jié)表示:01H,02H,03H,04H,05H,06H。也可以用3個字節(jié)表示,即BCD碼:12H,34H,56H。
不懂匯編語言,是不太好理解的。
第二、如果浮點數(shù)有小數(shù),在16進行中如何表示小數(shù)呢?如:3.14。
這個問題涉及浮點數(shù)與定點數(shù)。比如,用4個字節(jié)來表示,前三個字節(jié)表示整數(shù),后一個字節(jié)表示小數(shù)(這叫定點數(shù),規(guī)定了小數(shù)點的位置,看似簡單,卻有難點。。
難點1:整數(shù)有限制,不能大于FFFFFFH=16777215,否則溢出,這還好說好解決。
難點2:更麻煩的是,小數(shù)0.14,你幾乎想象不出它的如何寫!
以3.5為例:3.5可以寫成:00H,00H,03H,80H。
能不能寫成:00H,00H,03H,05H呢?不能!你做個3.5+3.5就知道為何,16進制的0.5為何要寫成80H而不是05H了。
討厭的小數(shù)部分0.14如何用16進行表達,就不在這里繁瑣了,還是那句話:不懂匯編語言,是不太好理解的。(3.14在這里只能近似地寫成00H,00H,03H,24H,而不是00H,00H,03H,14H,小數(shù)部分要先乘以256,然后而存入整數(shù)部分)
樓主要:【求教浮點數(shù)的十進制轉(zhuǎn)十六進制原理和代碼】,建議先學通匯編。
否則:就聽取樓上其它人的建議吧。
不是不講給你聽,而是比較復雜,你也缺一些課,不易簡單地就能讓你明白。
|