java二进制的学习(一)

来源:互联网 发布:网络外包服务流程 编辑:程序博客网 时间:2024/06/13 20:19

学习二进制之前需要先了解计算机原码,补码,反码的概念。

一个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。

0 0