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

C 語言入門筆記(七):IEEE 754 浮點數記憶體佈局實測

     編輯:關於C語言

前情回顧

已學無符號/有符號整數(補碼)。字符型用 ASCII,字符串以 \0 結尾,變量名實為首地址,遇 \0 止。

IEEE 754 單精度格式

符號位(1) + 指數位(8) + 尾數位(23) = 32 位

以 123456.0f 為例逐步拆解

  1. 轉二進制:123456.0f = 11110001001000000
  2. 歸一化:小數點左移至最高位 1 後 → 1.1110001001000000,移動 16 位
  3. 科學記數法:1.1110001001000000 × 2¹⁶
  4. 指數編碼:8 位指數採 移碼 (Excess-127),即 16 + 127 = 143 = 10001111₂(127 為偏移量,對應十六進制 0x7F)
  5. 組裝:正數符號位 0,隱含最高位 1 不存,尾數取 11100010010000000000000(23 位)
    0 10001111 11100010010000000000000
  6. 分組轉十六進制:0100 0111 1111 0001 0010 0000 0000 0000 → 47 F1 20 00
  7. 小端序存儲:VC 記憶體低位在前 → 00 20 F1 47
  8. 調試驗證:
    調試器內存視圖

頓悟

原來調試浮點數時內存顯示「怪怪的」,是因為小端序 + 移碼 + 隱含位!

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