java二进制的学习(一)

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值