服务热线:400-0033-166
万商云集 - 企业数字化选用平台

企业首选的

数字选用平台

补码运算溢出怎么办

2023-05-16 14:55:22 阅读(1234 评论(0)

两个负数的补码相加溢出怎么办?

使用二进制计算的时候会出现溢出现象,是因为计算机都有它的上限和下限,太大的数值和太小的数值都是无法显示出来的。 计算机中用补码来表示和存储数值,而在进行数值的算术运算时由于机器字长的限制往往会出现补码溢出,导致计算结果错误。 针对这个问题,提出了一种根据溢出结果得到正确结果的计算方法: 两个正数相加溢出时,将错误解加上2~(n+1)即为正确解; 两个负数相加溢出时,将错误解减去2~(n+1)即为正确解。

8位二进制补码运算-29-25,结果溢出了,怎么解决?

应该是考两个负数补码的加法吧,要转换为加法吧,不然把负号提取出来就太简单了-29 ---->补码:(29=16+8+4+1=(11101)二进制) 11100011-25 ----->补码:(25=16+8+1=(11001)二进制) 11100111补码用二进制加法 11100011 + 11100111 ——————— 11001010 (第八位进位舍去)补码11001010 ------>原码:10110110 转化为十进制:-54

补码溢出后怎么处理?

先一步步来 8位的-29的二进制原码10011101 反码11100010 补码11100011 -25的原码10011001 反码11100110 补码11100111 然后就是两个数的补码相加11100011+11100111得11001010 这个结果也是反码 化成原码就是减1再取反得10110110 最高位是符号位所以化成10进制就是-54 就是这么得来的。 计算时都要溢出的 否则计算就会错误 补码也就没意义了 所以希望你能懂溢出的原因!

补码加法溢出怎么办?

先一步步来 8位的-29的二进制原码10011101 反码11100010 补码11100011 -25的原码10011001 反码11100110 补码11100111 然后就是两个数的补码相加11100011+11100111得11001010 这个结果也是反码 化成原码就是减1再取反得10110110 最高位是符号位所以化成10进制就是-54 就是这么得来的。计算时都要溢出的 否则计算就会错误 补码也就没意义了 所以希望你能懂溢出的原因!

未经允许不得转载,或转载时需注明出处