當前位置:首頁 » 編程軟體 » 為什麼編譯除以0不報錯

為什麼編譯除以0不報錯

發布時間: 2022-07-17 04:02:08

Ⅰ 奇怪的除以0

你上面的解釋是基本正確的。實際上造成二者的差異的主要原因是在計算時,完成計算的處理單元不同。具體要從CPU的運算體系說起,簡單的說,整數的運算和浮點數的運算不在同一運算單元中,一般CPU中都有浮點運算協處理器,浮點運算都是在這個協處理器中進行的,然後將運算結果交給CPU,讓CPU進一步處理。為了保證CPU處理浮點運算結果的安全性,保護程序,因此浮點運算協處理器遇到除0的情況時,返回一個無窮大(當然在數學上這也是合理的),而不產生一個錯誤中斷,將這個無窮大交還給CPU後,CPU也認為是合理的,不會中斷,繼續運行下去,因此不會產生任何異常。

但如果是整數除0,由於整形計算都是在CPU中進行,除0後會產生一個中斷,編譯器捕獲到這個中斷向量以後就會拋出一個異常(java)或者編譯錯誤(C/C++)。

c語言中除法里除數為0,編譯器會不會報錯么

一般編譯器進行編譯時不對除數做檢查,這應該由程序員在代碼里在除法前對除數做判斷保證的

Ⅲ 程序正常編譯,但執行過程中因為被除數為0而發生錯誤,這是哪種錯誤

這是運行時錯誤啊, 除數當然不能為0了,

Ⅳ 為啥我這個輸出一直是0,編譯沒錯誤,運行就是0

scanf("%lf",&x); 就可以了,沒有必要限制手動輸入的格式。

Ⅳ java新手,為什麼除數為0,卻不報錯

因為0.0是float類型在除法中不會用准確的0而是一個接近0的小數

Ⅵ C++能實現任何數除以0的值的運算的原因是什麼

這應該和開發環境處理異常問題有關,我們在寫程序的時候會存在語法錯誤或是邏輯錯誤,而語法錯誤編譯通不過,系統能直接找到並給出,但邏輯錯誤編譯能通過,系統則不能找到,只會在執行的時候出現異常的錯誤。而除以0在開發環境中是沒有語法錯誤的,系統則不會報錯,編譯能通過,而我們在運行的時候就會出現了一些莫名其妙的異常錯誤。以上也是我的猜測,沒深入研究過。

Ⅶ 除數為何不能為0啊,為什麼除以0等於錯誤

因為除數表示把一個數分成多少份,如果是2,就是把一個數分成2份;如果是5,就是把一個數分成5份;而如果是0,那麼,就是把一個數分成0份,這顯然是沒有道理的,是不成立的,所以0不能夠做除數。

Ⅷ C++中,以下代碼有錯誤為何編譯器不會報錯呀

大哥,操作符不是定義的,而是要重載。
看了這句應該理解為何了吧?
也就是說,你的類如果不重載操作符,那麼將調用系統自定義的操作符。
所以編譯器不會報錯,也沒有錯誤。
除非你要重載操作符,來完成你特定的操作。

Ⅸ Java中為什麼整數除以0出現異常

這種問題寫個代碼跑一下就可以了,java中整數除以0會引發

java.lang.ArithmeticException: / by zero

ArithmeticException是出現異常的運算條件時,拋出此異常,結果如下圖:

除此之外還要注意,浮點數除以0將會的得到 Infinity(無窮大)或NaN結果,但不會報異常。

Ⅹ 為什麼我這個程序編譯不報錯,運行報錯

這個是運行時錯誤,編譯器在編譯時無法檢查此類錯誤,因為很多情況下值並不是固定的,編譯器無法判斷值是否合法,你這種情況就是數組下標越界,再仔細檢查一下代碼

熱點內容
日產途達四驅的有哪些配置 發布:2025-02-07 18:42:02 瀏覽:831
伺服器搭建鏡像站 發布:2025-02-07 18:41:55 瀏覽:376
游戲上雲成標配雲伺服器該怎麼選 發布:2025-02-07 18:26:13 瀏覽:141
哪個安卓手機自帶系統沒有廣告 發布:2025-02-07 18:22:36 瀏覽:724
電腦開機後一直在配置更新怎麼進入系統 發布:2025-02-07 18:17:43 瀏覽:12
新浪上傳視頻在哪 發布:2025-02-07 18:17:38 瀏覽:558
外匯點差演算法 發布:2025-02-07 18:16:41 瀏覽:79
我的世界各種伺服器核心的區別 發布:2025-02-07 18:15:52 瀏覽:678
雲伺服器客戶怎麼轉 發布:2025-02-07 18:13:19 瀏覽:206
什麼漫畫軟體可以緩存 發布:2025-02-07 17:56:21 瀏覽:269