前面我们已经讲解了进制之间的相互转换,还有疑问的可以点击链接直接跳转:一篇博文带你了解java中的进制转换
学过计算机理论的同学都会知道,一台计算机是由运算器,控制器,存储器,输入和输出设备组成。运算器只会加法运算,没有减法运算,任何存储于计算机中的数据,其本质都是以二进制码存储。
那么就有疑问了,计算机没法进行减法运算,那实际中我们的减法是怎么实现计算的呢?
其实计算机的减法是通过加法来实现的。你也许会说,现实世界中所有的减法也可以当成加法的,减去一个数,可以看作加上这个数的相反数。1-1
我们可以看成1+(-1)
,当然成立的前提是要先有负数的概念。这就为什么不得不引入一个该死的符号位。
原码,反码,补码是为了解决计算机做减法和引入符号位(正号和负号)的问题而产生。
原码:就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
正数 | 负数 | |
---|---|---|
0 | 0000 | 1000 |
1 | 0001 | 1001 |
2 | 0010 | 1010 |
3 | 0011 | 1011 |