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

C語言 float 型數據在內存中的存儲詳解(IEEE 754標準)

     編輯:關於C語言

C語言 float 型數據在內存中的存儲詳解(IEEE 754標準)

在 C 語言中,float 類型佔用 4 字節(32 位),遵循 IEEE 754 單精度浮點數標準。其內存佈局分為三個部分:

  • 符號位(Sign,1 bit):第 31 位,0 表示正數,1 表示負數。
  • 指數位(Exponent,8 bits):第 23~30 位,採用移碼表示(偏移量 127)。
  • 尾數位(Mantissa/Significand,23 bits):第 0~22 位,隱含最高位 1(規格化數)。

存儲示例

以 3.14f 為例,其二進制科學記數法為 1.10010001111010111000011 × 2^1:

  • 符號位:0
  • 指數位:1 + 127 = 128 → 10000000
  • 尾數位:10010001111010111000011(去掉隱含的 1)

最終內存中按小端序存儲為:0x40 0x48 0xF5 0xC3(十六進制)。

特殊值處理

  • 全 0 指數 + 全 0 尾數 → ±0
  • 全 1 指數 + 全 0 尾數 → ±∞
  • 全 1 指數 + 非 0 尾數 → NaN
  • 非規格化數:指數全 0,尾數非 0,隱含位為 0

理解這一存儲格式對於浮點數比較、序列化、嵌入式開發及底層調試至關重要。

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