黑马程序员技术交流社区

标题: 二进制负数为什么是正数的取反加1? [打印本页]

作者: 李俊贤    时间: 2014-9-25 16:33
标题: 二进制负数为什么是正数的取反加1?
好像这里还牵扯到符号数和补码什么的东西,不太明白,别人给我讲的我总是转不过弯来,能否给举个栗子详细讲解一下,谢谢大家

作者: Pheinogin    时间: 2014-9-25 17:05
补码的作用,就是一个数跟它的相反数相加结果为模。
两个正数相加,就是他们补码的和。两个正数相减,由于减数转换成了补码,还是只要补码相加就行。
这样在硬件设计的时候,只用加法器就可以实现了,简化设计。

作者: 289623337    时间: 2014-9-25 18:17
我个人理解就是一个规律,记住就好!
作者: 臭和尚    时间: 2014-9-25 18:38
就好像问1+1为什么等于2 ,回答不上来
作者: 臭和尚    时间: 2014-9-25 18:41
这个问题就好像问1+1为什么等于2 ,回答不上来,但是他存在肯定是为计算机的硬件和软件更好的应用的
作者: run_wind    时间: 2014-10-14 16:16
289623337 发表于 2014-9-25 18:17
我个人理解就是一个规律,记住就好!

背过行不行。。。
作者: 289623337    时间: 2014-10-15 12:05
run_wind 发表于 2014-10-14 16:16
背过行不行。。。

那有何不妥???
作者: 各有千秋    时间: 2014-10-25 07:36
不这么表示这么表示呢?也只有这样表示才可以用者几个字节表示玩正负数。
作者: 齐宁宁    时间: 2014-10-25 10:05
补码是在计算机内存中的存放的形式,第一个数字表示符号位,0正1负。整数补码是其本身,负数补码是其绝对值的补码除了符号位以外的二进制数取反加1
作者: zhangyangLengen    时间: 2014-11-1 08:42
楼上的楼主,回答的不错。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2