浮點數用十六進制表示


IEEE 754規定了表示浮點數值的方式:單精確度(32位元)、雙精確度(64位元),

32位單精度

單精度二進制小數,使用32個位元存儲,

其中分為符號位(S), 指數位(Exp),有效數位(Fraction)

【從左到右依次排序分別位1位、8位、23位】

指數部分即使用所謂的偏正值形式表示,實際值為表示值與一個固定值(32位的情況是127)的和。采用這種方式表示的目的是簡化比較。因為,指數的值可能為正也可能為負,如果采用補碼表示的話,全體符號位S和Exp自身的符號位將導致不能簡單的進行大小比較。正因為如此,指數部分通常采用一個無符號的正數值存儲。單精度的指數部分是−126~+127加上127 ,指數值的大小從1~254(0和255是特殊值)。浮點小數計算時,指數值減去偏正值將是實際的指數大小。

例如有一個浮點數是6.91,如何將其轉換為十六進制呢?

首先將6.91轉換為二進制形式:

110.111010001111010111000

將其規范化:調整使其實數第一位大於1小於2

6.91 =  1.10111010001111010111000 * 2^2

基本原型出來了

S:0

EXP : 2+127(10進制) =129(10進制) = 10000001(2進制)

Fraction : 10111010001111010111000 (注意:小數點前面的1不要了)

 

組合一下: 0  10000001  10111010001111010111000

            =  0100 0000 1101 1101 0001 1110 1011 1000

            =  4       0        D      D       1       E       B       8

 

 


---------------------
原文:https://blog.csdn.net/Cheatscat/article/details/78533349


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM