[问题] 二补数溢位如何解决?

楼主: 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