A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 李竞还活着 于 2015-6-5 19:07 编辑

今天看李伟老师的ios基础视频中原码反码补码的视频,当李伟老师举例说明为什么要采用补码时举了一个例子:
1-1=1+(-1);
然后李老师就开始说明如果用原码补码算会出错:
如用原码算(用八位简算):
1-1=1+(-1)=[0000 0001]+[1000 0001];
然后李老师说结果是-0;但是我明明感觉应该是[1000 0010]啊,我到底错在哪?
而如果用反码去计算:
1-1=1+(-1)=[0000 0001]+[1111 1110];
虽然我也算的是-0;但是很显然我是用[0000 0001]的每一位去加上[1111 1110]的每一位,而李老师是用[0000 0001]的每一位去减去[1111 1110]的每一位。
我真的是理解不了为什么要用+1的原码减去-1的原码;+1的反码减去-1的反码,谁能告诉我为什么?

1 个回复

倒序浏览
好吧, 补充视频里李老师说自己之前说错了,哈哈,是不是很有成就感呢?哈哈哈哈!!不过这个帖子就成了一个水贴了。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马