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