原码 反码 补码基本知识
- 正整数:原码、反码、补码均是原码本身
- 负整数:反码 = 原码按位取反(符号位除外) 补码 = 反码+1
例如
byte 1
原码:0000 0001
反码:0000 0001
补码:0000 0001
byte -3
原码:1000 0011
反码:1111 1100 (原码按位取反,符号位除外)
补码:1111 1101 (反码+1)
为啥要用补码
正负数,在计算机中存放的格式,就是补码。计算机中,并没有原码和反码,也就不必关心它们了。下面,针对补码,给出解释。
比如,有一个小孩,很小的。他只认识 100 个数(0~99),也不会做减法。那么,就可以告诉他:“减一”,就用“加 99”算吧。
36 - 1 = 35
36 + 99 = (1) 35
忽略进位的 100,结果不是一样的吗?
那么,就是说:
99,就是-1 的补数。
98,就是-2 的补数。
。。。
利用“补数”,就可把“减法”转为“加法”。利用这个特点,计算机中,仅需一个“加法器”,就够用了。