第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

整數(shù)除零在哪些平臺(tái)上觸發(fā)浮點(diǎn)異常?

整數(shù)除零在哪些平臺(tái)上觸發(fā)浮點(diǎn)異常?

C++ C
慕運(yùn)維8079593 2019-11-04 10:31:50
在另一個(gè)問(wèn)題中,有人想知道為什么在C ++程序中實(shí)際上有一個(gè)整數(shù)被零除的情況,為什么會(huì)出現(xiàn)“浮點(diǎn)錯(cuò)誤”。圍繞此展開(kāi)了討論,有人斷言,對(duì)于浮點(diǎn)數(shù)除以零,實(shí)際上從未提出過(guò)浮點(diǎn)異常,而僅在整數(shù)除以零時(shí)才出現(xiàn)。這對(duì)我來(lái)說(shuō)聽(tīng)起來(lái)很奇怪,因?yàn)槲抑溃涸谒蠾indows平臺(tái)上的x86和x64上,由MSVC編譯的代碼將整數(shù)除以零表示為“ 0xc0000094:整數(shù)除以零”,將浮點(diǎn)除以零為0xC000008E“浮點(diǎn)除以零”(啟用時(shí))IA-32和AMD64 ISA將#DE(整數(shù)除法異常)指定為中斷0。浮點(diǎn)異常觸發(fā)中斷16(x87浮點(diǎn))或中斷19(SIMD浮點(diǎn))。其他硬件具有類(lèi)似的不同中斷(例如, PPC在float-div-by-zero上引發(fā)0x7000,并且根本不捕獲int / 0)。我們的應(yīng)用程序使用_controlfp_s內(nèi)在函數(shù)(最終為stmxcsrop)對(duì)除零的浮點(diǎn)異常進(jìn)行屏蔽,然后捕獲它們以進(jìn)行調(diào)試。因此,我在實(shí)踐中肯定看到過(guò)IEEE754除以零例外。因此,我得出結(jié)論,有些平臺(tái)將int異常報(bào)告為浮點(diǎn)異常,例如x64 Linux(針對(duì)所有算術(shù)錯(cuò)誤均提高SIGFPE,而與ALU管道無(wú)關(guān))。還有哪些其他操作系統(tǒng)(或C / C ++運(yùn)行時(shí),如果您是操作系統(tǒng))將整數(shù)div-by-零報(bào)告為浮點(diǎn)異常?
查看完整描述

3 回答

?
呼如林

TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超3個(gè)贊

還有哪些其他操作系統(tǒng)(或C / C ++運(yùn)行時(shí),如果您是操作系統(tǒng))將整數(shù)div-by-零報(bào)告為浮點(diǎn)異常?


答案取決于您是在內(nèi)核空間還是用戶空間。如果您在內(nèi)核空間中,則可以將“ i / 0”放在中kernel_main(),讓中斷處理程序調(diào)用異常處理程序并暫停內(nèi)核。如果您在用戶空間中,答案取決于您的操作系統(tǒng)和編譯器設(shè)置。


AMD64硬件將整數(shù)除以零指定為中斷0,這與中斷16(x87浮點(diǎn)異常)和中斷19(SIMD浮點(diǎn)異常)不同。


“被零除”例外是用div指令除以零。關(guān)于x87 FPU的討論不在此問(wèn)題范圍內(nèi)。


其他硬件具有類(lèi)似的不同中斷(例如,PPC在float-div-by-zero上引發(fā)0x7000,并且根本不捕獲int / 0)。


更具體地說(shuō),00700映射到異常類(lèi)型“程序”,其中包括啟用了浮點(diǎn)的異常。如果嘗試使用浮點(diǎn)指令將其除零,則會(huì)引發(fā)此類(lèi)異常。


另一方面,按照PPC PEM,整數(shù)除法是未定義的行為:


8-53潛水


如果嘗試執(zhí)行除法-0x8000_0000÷–1或÷0,則rD的內(nèi)容以及CR0字段的LT,GT和EQ位的內(nèi)容均未定義(如果Rc = 1,則未定義) )。在這種情況下,如果OE = 1,則設(shè)置OV。


我們的應(yīng)用程序使用_controlfp_s內(nèi)在函數(shù)(最終為stmxcsr op)對(duì)除零的浮點(diǎn)異常進(jìn)行屏蔽,然后捕獲它們以進(jìn)行調(diào)試。因此,我在實(shí)踐中肯定看到過(guò)IEEE754除以零例外。


我認(rèn)為您的時(shí)間最好花在編譯時(shí)而不是運(yùn)行時(shí)被零除。


查看完整回答
反對(duì) 回復(fù) 2019-11-04
  • 3 回答
  • 0 關(guān)注
  • 816 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)