標(biāo)題: C語言float小數(shù)點(diǎn)前就幾位,轉(zhuǎn)成整型最大值是多少? [打印本頁]

作者: 李冬    時(shí)間: 2022-5-7 14:02
標(biāo)題: C語言float小數(shù)點(diǎn)前就幾位,轉(zhuǎn)成整型最大值是多少?
如題
作者: xuyaqi    時(shí)間: 2022-5-7 15:35
float轉(zhuǎn)成整型最大值是: 6.805646932770577*10^38
作者: yzwzfyz    時(shí)間: 2022-5-9 16:37
要看float定義,用的是幾個(gè)字節(jié)。通;蚰J(rèn)是4個(gè)字節(jié),一個(gè)字節(jié)表示方次,三個(gè)字節(jié)是底數(shù)。
如果,方次81H,底數(shù)000000H表示1,你估估看,它能表示的范圍。
最大值的表示方式:方次FFH,底數(shù)7FFFFFH(最高位隱含是1,寫1表示負(fù)數(shù),寫0表示正數(shù),但無論是正是負(fù)認(rèn)定最高位是1)。如此,最大數(shù)是:+1.70141173319264E+38。
如果,方次7FH,底數(shù)000000H表示1,則與沙發(fā)的結(jié)論相同。
我至少遇到過兩種不同的浮點(diǎn)數(shù)表示方式(符號位的位置定義不同),又不敢認(rèn)定哪一種是對是錯(cuò),因?yàn)樵谒鼈兏髯缘木幾g平臺下,數(shù)據(jù)一定是正確的。僅僅是浮點(diǎn)時(shí),表達(dá)不一樣(定浮轉(zhuǎn)換當(dāng)然也不同)。
或許對于同一個(gè)定點(diǎn)數(shù),有N種浮點(diǎn)的表達(dá)方式。
我也有疑問未解:如果浮點(diǎn)交換數(shù)據(jù),如果浮點(diǎn)的表達(dá)方式不同,不就出問題了么。
但至少我知道,這里可能會(huì)出問題,于是在匯編程序中會(huì)留意浮點(diǎn)數(shù)的表示方式(看它的定浮轉(zhuǎn)換程序就知道了)。

作者: xuyaqi    時(shí)間: 2022-5-9 20:32
在c51 keil里,浮點(diǎn)數(shù)范圍大得多(38位),四字節(jié)unsigned long只有10位。



作者: Hephaestus    時(shí)間: 2022-5-10 23:24
IEEE-754的指數(shù)部分采用滑動(dòng)格式,0~255表示指數(shù)范圍為-127~128,可以看到最大值比最小值大2倍,這就是樓上某位半瓶子醋把最大能表達(dá)的數(shù)字搞小了一倍的原因。




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1