-1

我在想這個 -我需要多少位來存儲AB + C?

如果A,B是16位數,C是8位,我需要多少位來存儲結果? 32或33?

而且,如果C是一個16位數字呢?然後怎樣呢 ?

我將不勝感激,如果我得到了答案和解釋的時間和時間。

+0

爲什麼這會得到downvoted? – Floose

回答

2

你爲什麼不把每個寄存器的最大值,並檢查結果?

如果所有寄存器是無符號:

0xFFFF * 0xFFFF + 0xFF = 0xFFFE0100 = // 32 bits are enough 

0xFFFF * 0xFFFF + 0xFFFF = 0xFFFF0000 // 32 bits are enough 

如果所有寄存器都簽字,然後爲0xFFFF = -32767,但0xFFFF的* 0xFFFF的將是像以前一樣(負*負爲正)。寄存器C將使結果稍微小於先前的結果,但您仍然需要32位來存儲它。

+0

我如何乘以FFFF和FFFF來得到你所說的?當我做紙和鉛筆乘法時,在某些點我得到1 + 1 + 1 + 1 - 這裏的總和位和進位是多少? – Floose

+0

我用Windows計算器做了它... –

+0

啊是的,我的另一個問題是如果這是有符號表示會發生什麼?那麼我可以儲存的最大數量是多少 – Floose

相關問題