关于公式:[X-Y]补=[X]补-[Y]补=[X]补+[-Y]补 的疑惑

xjlh 2002-04-03 08:18:11

设有X=+1000110 (70) Y=+110010 (50)

现在求[X-Y]补,按公式等于:[01000110](X补)+[11001110](-Y补)=[00010100]

结果00010100刚好是20(70-50)在计算机中存储形式,说明公式正确。

但是当设有X=-1000110(-70) Y=-110010(-50)时,按照公式以及求负补的方法

我的详细步骤:
[X]原=11000110
[X]反=10111001
[X]补=10111010

[Y]原=10110010
[Y]反=11001101
[Y]补=11001110
按照求负补的方法,对补码各位(包括符号位)取反,最低位加1
[Y]负补=00110010

则按公式[X-Y]补=[X]补+[-Y]补(Y负补) = [10111010]+[00110010] = [11101100]

结果11101100是-108在计算机中的存储形式,

疑惑:为什么不是(-70)-(-50) = -20 在计算机中的存储形式,即10010100

也许我对公式理解有误,请各位朋友帮忙看看,谢谢!

...全文
1069 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
tangshiping 2002-04-04
  • 打赏
  • 举报
回复
xjlh,不好意思说的太鲁莽了,正确答案已经发到你的邮箱中了!
tangshiping 2002-04-03
  • 打赏
  • 举报
回复
在计算机中,0-9用0000-1001表示,但是1010-1111这几个数却成为非法的十进制数字,在汇编语言中又一套计算时的纠错机制,如果你有兴趣的话,请将你的e-mail发到tjlnihao@etang.com.抱歉正有事不能发详细的帖子。

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧