学习二进制之前需要先了解计算机原码,补码,反码的概念。
一个byte=八位,一个byte能表示的最大数字是01111111,最小数字是11111111。因为最高位是不参与运算的,1表示负数,0表示整数。新入门只要知道这个即可。还有就是二进制的计算规则,逢二进一,00000000代表0,000000001代表1,000000010代表2,....11代表三,以此类推。如果要表示负数,只要将最高位的0改成1就行。
再来了解下原码,反码,补码的概念。
原码就是符号位加上真值的绝对值,如果00000100代表某个正数(4),那么这个值的负值就是100000100。还是狠容易理解的。
这里还遇到一个问题,java里的打印Byte.MAX_VALUE的值为127,但是为什么MIN_VALUE的值不是-127而是-128呢?
接下来了解反码,反码的表示方式是:正数的反码是其本身,负数的反码是在其源码的基础上,符号位不变,其余各个位取反。
补码,补码的表示方式是:正数的补码是其本身,负数的补码是反码+1。
以上参考了http://www.cnblogs.com/zhangziqiu/archive/2011/03/30/ComputerCode.html。