[問題] 二補數溢位如何解決?

作者: look1214 (Swatch)   2019-11-05 18:44:24
剛剛突然想到
假設今天用4個bits的二補數表示來做7+7
0111+0111=1110
出來的值為-2
這要怎麼解決?
謝謝
作者: nh60211as   2019-11-05 19:31:00
這不是正常的行為嗎?怎麼解析那個4bit的數是寫程式的人的工作
作者: tw4563335 (tw4563335)   2019-11-05 19:54:00
你可以改用8個bits做啊
作者: chuegou (chuegou)   2019-11-05 20:32:00
你的ALU沒有溢位或進位旗標嗎
作者: Schottky (順風相送)   2019-11-05 21:11:00
你的意思是你要寫大數運算,在問 C 該如何做進位嗎?因為在組合語言的層面會有旗標告訴你該進位了
作者: sarafciel (Cattuz)   2019-11-06 10:57:00
4bit二補數能表達的範圍就是+7~-8呀比起要怎麼解決 有什麼原因要加兩個極限數值才是問題吧
作者: MartinJ40 (Martin J-40)   2019-11-06 14:06:00
換一台電腦就好了
作者: Schottky (順風相送)   2019-11-06 22:15:00
那如果 int128 也溢位還能換什麼電腦? XD
作者: iaminanl (好MAN)   2019-11-07 06:32:00
用struct寫ㄅ,何苦為難3個bit
作者: ofd168 (大色狼來襲)   2019-11-11 09:00:00
如果是硬體,實務上是,兩個4個bits相加會變成5個bits,然後透過saturate砍回4個bits,這樣可以保證不會overflow

Links booklink

Contact Us: admin [ a t ] ucptt.com