首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

VDSP (BF561) 浮點運算系列(5):float 型別表示總結與常數解析

     編輯:關於C++

完整解析 IEEE 754 單精度浮點數在 VDSP 上的表示、編碼過程與關鍵常數定義。

編碼實例:1234.56 → 0x449A51EC

  • 二進制:0100 0100 1001 1010 0101 0001 1110 1100
  • 符號=0,指數=137(10001001),尾數=00110100101000111101100
  • 值 = 1.205625... * 2^(137-127) = 1234.56005859375

編譯器編碼過程(手動驗證)

  1. 整數部 1234 → 10011010010 (0x4D2)
  2. 小數部 0.56 → 乘 2 取整法得 0.10001111010111...
  3. 科學記數法:1.001101001010001111010111 * 2^10
  4. 指數 = 127 + 10 = 137
  5. 尾數 = 001101001010001111010111
  6. 組合:0 10001001 001101001010001111010111 = 0x449A51EB

與編譯器結果 0x449A51EC 末位差 1,可能為捨入模式差異。

關鍵常數

常數值十六進制備註
FLT_MIN1.175e-380x00800000指數=1, 尾數=0
FLT_MAX3.402e+380x7F7FFFFF指數=254, 尾數全1
FLT_EPSILON1.192e-070x340000002^-23, 1.0 可加的最小增量
INF±Inf0x7F800000 / 0xFF800000指數=255, 尾數=0
NaNNaN0x7F800001+指數=255, 尾數≠0

生成特殊值

  • 1.0/0.0 → +Inf
  • -1.0/0.0 → -Inf
  • 0.0/0.0 → NaN (0xFFFFFFFF)

可用 isinf/isnan 檢測。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved