首页 > 编程知识 正文

原码补码和反码的运算,原码反码补码计算例题

时间:2023-05-06 19:46:42 阅读:223916 作者:2070

其实,说起原码,补码,反码的关系,大家都会想起这样一句话:“反码是原码除符号位其余全部取反,补码是反码加1。“真的是这样简单吗,今天我们就来探讨一下!

1.正数原码、补码、反码的计算

例如:+1的原码:00000001
+1的反码:00000001
+1的补码:00000001
由此,我们可以发现,正数的原码,补码,反码是一样的。

2.负数原码、补码、反码的计算

例如:-1的原码:10000001
-1的反码:111111110
-1的补码:111111111
由此,我们可以发现,负数的反码是原码除符号位其余取反,补码是反码加一。

补码,原码,反码之间的计算方式如上图所示。

3.为什么会出现反码、补码?

1.首先,出现反码:原码在计算正数与正数是没有问题,但是出现正数与负数,负数与负数之间的计算就出现问题了,这才有了反码。
2.我们先看下反码计算问题:
1+(-1)=0
00000001+11111110=11111111(反)=(10000000)原=(-0)
1+(-2)=-1
00000001+11111101=11111110 (反)=(10000001)原=(-1)
-1+ 2 = 1
111111110+00000010=00000000(反)=(00000000)原=0
这是就会存在问题了,当正数比负数大时,反码计算会存在错误,所以出现了补码。
3. 1+(-1)=0
00000001+11111111=00000000(补)=(00000000)原=(0)
1+(-2)=-1
00000001+11111110=11111111(补)=(10000001)原=(-1)
-1+ 2 = 1
111111111+00000011=00000001(补)=(00000001)原=1
这样看用补码无论正数与负数谁大计算都不会出错。
其实,补码的出现就相当于补数的问题。在二进制中计算,我们发现其实相当于一个圆,这也就相当于我们生活中的表,补码的计算就相当于我们计算时间的12小时计数法,当达到十二个小时时就可以从头计算。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。