十六進製制表示浮點數

2021-10-09 07:30:28 字數 1050 閱讀 5466

十六進製制表示浮點數需要先將浮點數表示為二進位制的數字。

整數部分,除以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在記憶...