C/C++ 16进制转IEEE754
轉載地址:單片機
將(32位)16進制IEEE-754標準浮點數就是用十六進制表示浮點,稱為單精度浮點數。
舉例:已知一個數為2.5,IEEE-754標準浮點數表示為 40200000H。
16進制浮點數與十進制的轉化步驟:
對于大小為32-bit的浮點數(32-bit為單精度,64-bit浮點數為雙精度,80-bit為擴展精度浮點數),
1、其第31 bit為符號位,為0則表示正數,反之為復數,其讀數值用s表示;
2、第30~23 bit為冪數,其讀數值用e表示;
3、第22~0 bit共23 bit作為系數,視為二進制純小數,假定該小數的十進制值為x;
則按照規定,該浮點數的值用十進制表示為:= (-1)^s * (1 + x) * 2^(e - 127)
例如:對于16進制浮點數49E48E68H來說,
1、其第31 bit為符號位,為0則表示為正數;
2、第30~23 bit依次為100 1001 1,讀成十進制就是147,即e = 147。
3、第22~0 bit依次為110 0100 1000 1110 0110 1000,也就是二進制的純小數0.110 0100 1000 1110 0110 1000,其十進制形式為0.78559589385986328125,即x = 0.78559589385986328125。即x = 0.78559589385986328125。
可知:16進制浮點數49E48E68H的10進制表示:
=(-1)^s * (1 + x) * 2^(e - 127)
=(-1)^0 * (1+ 0.78559589385986328125) * 2^(147-127) = 1872333。
?
總結
以上是生活随笔為你收集整理的C/C++ 16进制转IEEE754的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: delphi7中的指针
- 下一篇: ios苹果开发者账号申请流程(2017)