2013-10-25 39 views
2

最近,我驚訝地發現,Emacs的允許除以零:爲什麼Emacs允許零除?

(/ 1.0 0) 
=> 1.0e+INF 

花車這隻作品,整數提高預期的錯誤:

(/ 1 0) 
=> Arithmetic error 

我試圖尋找此,可以發現沒有用。

這種行爲的原因是什麼?

+2

這是標準的C行爲。這是完全標準和合乎邏輯的:除以inf - 讓你的零回來。 –

+1

雖然我們習慣了斷言「你不能被0除」,但它實際上並不是真的,所以這種行爲實際上比其他行爲更正確 –

+1

Infinity不是一個數字,所以這仍然是正確的。但是,還有更多。所有的計算機算術都是模塊化的,因爲在所有的操作中,實際上不是加或減,它們是「加模2^32」或其他。因此,在雙精度浮點數的情況下,除零被定義,因爲它具有使其工作的特殊值。你可以認爲這些特殊值與複數中的一個平方根類似,因爲它們需要做一些更大的定理。 – 2013-10-25 08:32:35

回答