鍍金池/ 問答/C  Linux/ c語言中 float的最小絕對值為什么是2^-126?

c語言中 float的最小絕對值為什么是2^-126?

float有8個指數(shù)位 存儲的是補碼的話 為什么指數(shù)最小是-126?

回答
編輯回答
枕頭人

這是IEEE 754的規(guī)定.float的二進制表示被分為三部分

  • 符號(1位)
  • 階碼(8位)
  • 尾數(shù)(23位)

為了計算機更好的比較浮點數(shù),所以階碼是無符號數(shù),0<階碼<255.其中0(00000000)和255(11111111)有特別含義看,所以用到的范圍實際是1<階碼<254.然后規(guī)定了一個偏置碼(bias value),大小為127,階碼的值(指數(shù))=階碼無符號數(shù)-偏置碼(127)

  • 1-127=-126
2018年7月2日 17:27