十六進製制表示浮點數需要先將浮點數表示為二進位制的數字。
整數部分,除以2取餘數表示為整數部分;
小數部分,乘以2取整數部分;
以 2.45 轉化為二進位制為例:
整數部分:2 可以表示為 10
小數部分 :
0.45 * 2 = 0.9 取整數 0
0.9 * 2 = 1.8 取整數 1
0.8 * 2 = 1.6 取整數 1
0.6 * 2 = 1.2 取整數 1
0.2 * 2 = 0.4 取整數 0
0.4 * 2 = 0.8 取整數 0
0.8 * 2 = 1.6 取整數 1
............
小數部分可以表示為: 0.0111001......
所以2.45 轉為二進位制數為 10.0111001....
3.單精度表示浮點數: 單精度32位 可以劃分三個部分一位符號位 8位指數字餘下的23位為尾數。
我們之前已經將2.45轉化為了二進位制數 將其轉化為浮點數的二進位制表示:
10.0111001... 科學計數法表示為 1.00111001 * 2^1(為了方便尾數省去)
符號位: 正數為0 負數為1
指數字 : 指數為 1 // 指數由八位表示的範圍為 -127----128 為防止指數字再次出現指數需要 +127
指數字實際值: 1+127 = 128 表示為8位二進位制數為:1000 0000
尾數為 00111001....
二進位制表示浮點數的結果為:
0100 0000 0001 1100 1.......
將二進位制表示的浮點數轉化為 十六進製制。
0100 0000 0001 1100 ....
4 0 1 c .......
十六進製制表示法
乙個位元組由8位組成。在二進位制表示法中,他的值域是00000000 11111111 如果看成十進位制整數,他的值域就是0 255 兩種符號表示法對於描述位模式來說都不是非常方便。二進位制表示法太冗長,而十進位制表示法與位模式的相互轉化很麻煩。替代的方法是以16為基數,或者叫做十六進製制 hexa...
浮點數的二進位制表示
前幾天,我在讀一本c語言教材,有一道例題 includevoid main void 執行結果如下 num的值為 9 pfloat的值為 0.000000 num的值為 1091567616 pfloat的值為 9.000000 我很驚訝,num和 pfloat在記憶體中明明是同乙個數,為什麼浮點數...
浮點數的二進位制表示
日期 2010年6月 6日 1.前幾天,我在讀一本c語言教材,有一道例題 includevoid main void 執行結果如下 num的值為 9 pfloat的值為 0.000000 num的值為 1091567616 pfloat的值為 9.000000 我很驚訝,num和 pfloat在記憶...