数字电路之原码、补码、反码的来由

众所周知,在数字电路中人们用二进制数来表示数值的大小,然而数有正负之分!如何区别二进制数的正负呢?
为了解决这个问题,科学家们想到在二进制数的前面在再加上一位符号位,以此来区别二进制数的正负。1–代表负数,0–代表正数。然后又称这种带有符号位的二进制数称为原码。即原码=符号位+二进制数值

然而引入原码确实可以区分二进制数的正负,但也带来了一个新的问题,如两个数相减最终结果的符号位是1(负)呢还是0(正)呢?
我们需要找出这两个数中的绝对值大的数,然后用绝对值大的减去绝对值小的数,结果再加上绝对值大的数的符号位。因此若用原码进行加减操作需要比较电路与减法电路两种电路,较麻烦!如何简化电路呢?
为了解决用原码直接进行加减的引起电路复杂的弊端,我们引入了补码(在计算机中带符号位的数值都是以补码的形式存贮在内存中的)!
用补码的方式表示二进制数值大小好处是加减可以直接得到符号位。无需比较电路。
而一个数的补码如何得到呢?
为了方便得到一个数的补码我们引入了反码!(在电路中取反是很容易实现的。)
补码=反码+1
而反码=原码除符号位其余位的按位取反
注意!一个数(无论正负)的原码、补码、反码的符号位都是相同的,不改变!!!

发布了20 篇原创文章 · 获赞 64 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/weixin_42033596/article/details/90703511