亲爱的斯塔克溢流社区
问题:给出了两个数字x= 01111110 (基2)和y= 00001000 (基2) .Explain,为什么x+y运算会导致错误的结果?
,我的尝试: (理解),从我对符号数量级的研究来看,只有当答案溢出到符号中时,x+y才是错误的。
请任何人帮助我,我已经研究和阅读了关于符号大小,一个s complement and two的补充,但仍然觉得很混乱。
非常感谢你抽出时间和耐心来看我的问题。
发布于 2017-08-20 16:43:01
假设你的有符号整数宽8位,它就像你说的那样:它在符号位中溢出,这(在2的补码中)会导致舍入。
01111110 +
00001000 =
10000110正如您所看到的,将两个正数(126和8,它们都有符号位未设置)相加,会产生一个负值(它有符号位集;在2的补码中,它是-122),这显然是错误的。
https://stackoverflow.com/questions/45784427
复制相似问题