C語言中的雙精度浮點數使用 double 數據類型表示,占用 8 個字節(64 位)。其內部的表示方式遵循 IEEE 754 浮點數標準。
具體來說,雙精度浮點數分為三個部分:符號位、指數位和尾數位。
符號位:占用 1 個位,用于表示數值的正負,0 表示正數,1 表示負數。
指數位:占用 11 個位,用于表示數值的指數部分。由于指數位需要表示正負數,因此使用偏移碼表示法。其中,全 0 表示最小指數(-1023),全 1 表示最大指數(1024),其余的二進制數表示真實的指數減去 1023。
尾數位:占用 52 個位,用于表示數值的尾數部分。尾數部分是一個二進制小數點后的小數,范圍在 [1,2) 之間。
雙精度浮點數的表示形式為:(-1)^符號位 * (1 + 尾數位) * 2^(指數位 - 1023)。
需要注意的是,由于浮點數的精度限制,雙精度浮點數可能無法精確表示某些小數,可能會存在舍入誤差。