二进制、八进制、十六进制转换及原码、反码、补码转换
二进制
- 如果说十进制是人类的计算度量单位,那么二进制就是机器识别的计算度量单位
,十进制逢十进一,例如9+1=10,到10进位,各位数为0,十位数则加1为1,写出来则为10,在计算机中,有个概念叫位,一个byte是8位,我们下面讨论的都将以8位为准,例如1,在计算机中显示为0000 0001,那么计算机中1+1=2,则逢2进1就是0000 0010,在java中如果要定义一个数为二进制数,则可以这样定义int a = 0b111;
计算机中规定最高位是符号位正数用0表示,负数则用1表示,那么-1则怎么表示呢,是1000 0001吗?答案是否定的,待会儿讲到原码、反码、补码的时候会提到.
八进制
- 顾名思义 即逢8进1,同理9表示成
011
,java中定义8进制数9则定义成int a = 011
,定义7为int a = 07
十六进制
- 即逢16进1,同理9表示成
int a = 0x9
,10可以表示成int a = 0x10
或者int a = 0xa
,字母a-f分别可以表示数字10-15,因为数字2位可能看起来不是很直观
进制转换
十进制 --> 二进制、十进制 --> 八进制、十进制 --> 十六进制
以5为例
- 转成二进制则是0000 0101,如何计算的呢,有个公式5/