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

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

已經(jīng)溢出時(shí)是否可以預(yù)測(cè)算術(shù)結(jié)果?

已經(jīng)溢出時(shí)是否可以預(yù)測(cè)算術(shù)結(jié)果?

泛舟湖上清波郎朗 2022-11-30 16:47:16
假設(shè)我們有,這int n = 2 ^ 31就是n-1 = 0111111111111111111111111111111我在本地可以得到的。我的猜測(cè):首先轉(zhuǎn)換n為long-> 減法 -> 切片以適應(yīng)int.System.out.println(n);System.out.println(Integer.toBinaryString(n-1) + " : " + Integer.bitCount(n-1));System.out.println(n-1);// output -21474836481111111111111111111111111111111 : 312147483647但是我沒(méi)有找到任何規(guī)范來(lái)驗(yàn)證我的猜測(cè),有嗎?來(lái)自整數(shù)溢出維基。當(dāng)算術(shù)運(yùn)算產(chǎn)生的結(jié)果大于上述 N 位整數(shù)的最大值時(shí),溢出會(huì)將結(jié)果縮減為 2 的 N 次方模,僅保留結(jié)果的最低有效位并有效地導(dǎo)致回繞。如果我的猜測(cè)完全錯(cuò)誤,那么它實(shí)際上是如何工作的呢?我可以參考任何鏈接嗎?任何幫助將不勝感激 :)
查看完整描述

1 回答

?
翻過(guò)高山走不出你

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

這就是二進(jìn)制補(bǔ)碼算術(shù)的工作原理。

根據(jù) JLS §15.18.2 ,從 2^31 減去 1 與 2^31 加 -1相同,

對(duì)于整數(shù)和浮點(diǎn)數(shù)減法,總是a-b會(huì)產(chǎn)生與 相同的結(jié)果a+(-b)。

還有那個(gè)

如果整數(shù)加法溢出,則結(jié)果是數(shù)學(xué)和的低位位,以某種足夠大的二進(jìn)制補(bǔ)碼格式表示。如果發(fā)生溢出,則結(jié)果的符號(hào)與兩個(gè)操作數(shù)值的數(shù)學(xué)和的符號(hào)不同。

現(xiàn)在我們可以用二進(jìn)制計(jì)算 2^31 和 -1 的和。2^31 是一個(gè) 1 后跟 31 個(gè)零,即 -2147483648 的補(bǔ)碼。-1 的補(bǔ)碼是 32,所以我們有:

 1000 0000 0000 0000 0000 0000 0000 0000+1111 1111 1111 1111 1111 1111 1111 1111

如您所見(jiàn),左邊的最后一位溢出了,但根據(jù)第二個(gè)摘錄,我們忽略了它。將所有這些相加,我們得到:

0111 1111 1111 1111 1111 1111 1111 1111

這是 2147483647


查看完整回答
反對(duì) 回復(fù) 2022-11-30
  • 1 回答
  • 0 關(guān)注
  • 96 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(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)