浮點數用十六進制表示
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
浮點數用十六進制表示