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

看板C_and_CPP作者 (Swatch)時間4年前 (2019/11/05 18:44), 編輯推噓6(607)
留言13則, 8人參與, 4年前最新討論串1/1
剛剛突然想到 假設今天用4個bits的二補數表示來做7+7 0111+0111=1110 出來的值為-2 這要怎麼解決? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.82.186.130 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1572950666.A.D42.html

11/05 19:31, 4年前 , 1F
這不是正常的行為嗎?怎麼解析那個4bit的數是寫程式的
11/05 19:31, 1F

11/05 19:31, 4年前 , 2F
人的工作
11/05 19:31, 2F

11/05 19:54, 4年前 , 3F
你可以改用8個bits做啊
11/05 19:54, 3F

11/05 20:32, 4年前 , 4F
你的ALU沒有溢位或進位旗標嗎
11/05 20:32, 4F

11/05 21:11, 4年前 , 5F
你的意思是你要寫大數運算,在問 C 該如何做進位嗎?
11/05 21:11, 5F

11/05 21:11, 4年前 , 6F
因為在組合語言的層面會有旗標告訴你該進位了
11/05 21:11, 6F

11/06 10:57, 4年前 , 7F
4bit二補數能表達的範圍就是+7~-8呀
11/06 10:57, 7F

11/06 10:59, 4年前 , 8F
比起要怎麼解決 有什麼原因要加兩個極限數值才是問題吧
11/06 10:59, 8F

11/06 14:06, 4年前 , 9F
換一台電腦就好了
11/06 14:06, 9F

11/06 22:15, 4年前 , 10F
那如果 int128 也溢位還能換什麼電腦? XD
11/06 22:15, 10F

11/07 06:32, 4年前 , 11F
用struct寫ㄅ,何苦為難3個bit
11/07 06:32, 11F

11/11 09:00, 4年前 , 12F
如果是硬體,實務上是,兩個4個bits相加會變成5個bits,然
11/11 09:00, 12F

11/11 09:00, 4年前 , 13F
後透過saturate砍回4個bits,這樣可以保證不會overflow
11/11 09:00, 13F
文章代碼(AID): #1TmLAAr2 (C_and_CPP)