在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/C/ 為什么c中1.0/0.0=inf,0.0/0.0=nan?

為什么c中1.0/0.0=inf,0.0/0.0=nan?

環(huán)境:gcc std=-c99(gcc version沒查出來,用的IDE...)

猜測是和浮點型數(shù)值表示的方式有關(以及除法的影響?),剛學不久對這方面不是很了解,請知曉的前輩指教,感謝!

回答
編輯回答
忠妾

C里面浮點數(shù)運算是用的IEEE 754標準,支持infnan的表示及運算。

  • inf = infinity(無窮大):1.0 / 0.0 的結果是無窮大這是很合理的。
  • nan = not a number(無法用數(shù)字表示、未定義):0.0 / 0.0 在數(shù)學上是未定義。

infnan這兩個特殊值在IEEE 754 浮點數(shù)算術標準中都有定義,而PC機和服務器的處理器都在使用IEEE 754做浮點運算,因此你的C程序會得到這樣的結果。

需要注意的是(多謝 FirstLove 指正),C語言標準并沒有要求浮點數(shù)運算嚴格遵守IEEE 754,而是在盡量去保持兼容。這主要是因為做為語言標準,要照顧那些低端處理器(如烤箱上的處理器等)。它們也用C編程,但是甚至都沒有浮點運算單元。

2017年11月18日 05:19
編輯回答
孤慣

去翻這份文檔-http://www.open-std.org/jtc1/...
§5.2.4.2.2, 讀完你就知道了

2017年1月2日 17:22
編輯回答
尐懶貓

在數(shù)學里就有這種關系,高數(shù)沒學么?

2018年6月27日 06:17