两个数的二进制反码求和的运算规则

qjzrd 2009-03-26 11:47:32
注:两个数的二进制反码求和的运算规则:

1、从低位到高位逐列进行运算;

2、0+0=1,0+1=1,1+1=0(进位1加到下一列);

3、最高位相加产生的进位,要在最后的结果加1.

按照这个规则下面三个数的结果应该是什么?

1100 1111 0001 1010
1111 1010 0001 1000
1000 0000 0000 0001
---------------------------


...全文
4157 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuexiwen 2009-04-16
  • 打赏
  • 举报
回复 3
0+0=0才对,搞准了,别害人了。。。。。。。。。。。。。
zenny_chen 2009-03-27
  • 打赏
  • 举报
回复
这个很简单啊。
先求出反码,然后进行相加

1100 1111 0001 1010
1111 1010 0001 1000
1000 0000 0000 0001
---------------------------

反码为:
0011 0000 1110 0101
0000 0101 1110 0111
0111 1111 1111 1110
---------------------------
得:
0011 0110 1100 1100
0111 1111 1111 1110
=
1011 0110 1100 1010
品茶 2009-03-27
  • 打赏
  • 举报
回复
http://blog.csdn.net/macky0668/archive/2009/02/21/3917878.aspx
这个是介绍原码反码和补码的链接
品茶 2009-03-27
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 qjzrd 的回复:]
3、最高位相加产生的进位,要在最后的结果加1.

如果 有这样的两个数011110 + 011111

他们的反码为
100001
100000

则相加的结果为
---------
000010


两个数的二进制反码求和的运算规则
就是先取各个数的反码 之后在相加 就得到结果了, 结果不用在反码了是吗?
[/Quote]
LZ
基础很重要,正数的反码和原数相同。
qjzrd 2009-03-27
  • 打赏
  • 举报
回复
3、最高位相加产生的进位,要在最后的结果加1.

如果 有这样的两个数011110 + 011111

他们的反码为
100001
100000

则相加的结果为
---------
000010


两个数的二进制反码求和的运算规则
就是先取各个数的反码 之后在相加 就得到结果了, 结果不用在反码了是吗?
qjzrd 2009-03-27
  • 打赏
  • 举报
回复
按照你的计算

2、0+0=1,0+1=1,1+1=0(进位1加到下一列);

那0+0 应该等于 0 吧

caremsi 2009-03-27
  • 打赏
  • 举报
回复
学习下
qjzrd 2009-03-26
  • 打赏
  • 举报
回复
我的计算过程是:
1100 1111 0001 1010
1111 1010 0001 1000
------------------------
0011 0101 1110 0111


0011 0101 1110 0111
1000 0000 0000 0001
-------------------------
1111 1111 1111 1110

取反码
1111 1111 1111 1110
-----------------------
0000 0000 0000 0001

是这样吗?我觉得不对 因为第三条不明白

65,201

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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