2015-11-18 61 views
0

我在一次採訪中被問到了這個問題,起初我的感覺是,每個64位數將被存儲在兩個32位存儲器位置,然後系統可以進行正常添加基於Endian規則的算術。但是我沒有得到關於我的回答是否正確的確認,而且我一直在懷疑。我知道這可能是非常基本的,但我需要知道。由於我可以在32位機器上添加2個64位數嗎

+0

你沒有考慮到這些數字是用['two's-complement notation']表示的(https://en.wikipedia.org/wiki/Two%27s_complement) – alfasin

+0

@alfasin:沒關係,我不喜歡我認爲這很重要 – user1537366

回答

2

如果您沒有溢出位,那麼您必須先將最低31位加在一起,然後您可以檢查2^31位置是否溢出*。然後你正確地設置了那一點。然後,將最高的32位加在一起,如果在*中溢出,則加1。在最高32位溢出是好的,並很好地處理了二進制補碼算法。

0

我的回答是對子級:

添加2號可能導致aximu最多2次,數量。因此,添加2個32位數字最多可以產生33位數字。使用CPU的溢出標誌位33可以被使用。通過添加最重要的32位首先和最不重要的32位,並檢查溢出位將1添加到最重要的32位部分。

這是回答您的問題嗎?

相關問題