1. 程式人生 > >浮點數用十六進制表示

浮點數用十六進制表示

lin 形式 大於 自身 比較 補碼 log 例如 其中

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

浮點數用十六進制表示