看板 C_and_CPP 關於我們 聯絡資訊
剛剛突然想到 假設今天用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
nh60211as: 這不是正常的行為嗎?怎麼解析那個4bit的數是寫程式的 11/05 19:31
nh60211as: 人的工作 11/05 19:31
tw4563335: 你可以改用8個bits做啊 11/05 19:54
chuegou: 你的ALU沒有溢位或進位旗標嗎 11/05 20:32
Schottky: 你的意思是你要寫大數運算,在問 C 該如何做進位嗎? 11/05 21:11
Schottky: 因為在組合語言的層面會有旗標告訴你該進位了 11/05 21:11
sarafciel: 4bit二補數能表達的範圍就是+7~-8呀 11/06 10:57
sarafciel: 比起要怎麼解決 有什麼原因要加兩個極限數值才是問題吧 11/06 10:59
MartinJ40: 換一台電腦就好了 11/06 14:06
Schottky: 那如果 int128 也溢位還能換什麼電腦? XD 11/06 22:15
iaminanl: 用struct寫ㄅ,何苦為難3個bit 11/07 06:32
ofd168: 如果是硬體,實務上是,兩個4個bits相加會變成5個bits,然 11/11 09:00
ofd168: 後透過saturate砍回4個bits,這樣可以保證不會overflow 11/11 09:00