大龄屌丝自学笔记--Java零基础到菜鸟--006

进制、原码、补码、反码

 

1、四种进制

1(开)、0(关) 组成一个二进制数据:1 bit(比特)。

1 byte=8 bit , 1 k=1024 byte , 1 m=1024 k , 1 g=1024 m , 1 t=1024 g 。

二进制   :0、1组成,以 “0b” 开头。

八进制   :0、1、2、3、4、5、6、7组成,以 “0” 开头。

十进制   :0、1、2、3、4、5、6、7、8、9组成,默认十进制。

十六进制:0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f 组成,以 “0x” 开头。

 

2、其他进制转换为十进制

二进制->十进制   :每位数字本身*2的(n-1)次幂,如:0b101=1*2^2+0*2^1+1*2^0=5。

八进制->十进制   :每位数字本身*8的(n-1)次幂,如:0101=1*8^2+0*8^1+1*8^0=65。

十六进制->十进制:每位数字本身*16的(n-1)次幂,如:0x101=16*2^2+8*2^1+1*8^0=257。

十六进制字母对应数字:a(10)、b(11)、c(12)、d(13)、e(14)、f(15)。

 

3、十进制转其他进制

 十进制->二进制   :十进制数除以2,除到商为0,从后往前将余数组合起来,如:5=(5/2=2【1】)=(2/2=1【0】)=(1/2=0【1】)=0b101。

 十进制->八进制   :十进制数除以8 ,除到商为0,从后往前将余数组合起来,如:65=(65/8=8【1】)=(8/8=1【0】)=(1/8=0【1】)=0101。

 十进制->十六进制:十进制数除以16,除到商为0,从后往前将余数组合起来,如:257=(257/16=16【1】)=(16/16=1【0】)=(1/16=0【1】)=0x101。

 

4、8421法:

二进制:1   、1  、1  、1 、1、1、1、1

十进制:128、64、32、16、8、4、2、1

二进制->十进制:1对应位置的数据直接相加,如:0b101=4+1=5。

十进制->二进制:从128开始依次递减,最后左侧补,如:5=(5-4=1【4,1】)=0b101。

 

5、拆分组合法:

二进制->八进制   :从右侧开始三位一组,不够左侧补灵,直接转换十进制,组合在一起,如:0b1101101=【001、101、101】=【1、5、5】=0155。

二进制->十六进制:从右侧开始4位一组,不够左侧补灵,直接转换十进制,组合在一起,如:0b1101101=【0110、1101】=【6、13】=0x6d。

 

6、原码、反码、补码

计算机内所有数据运算都是用补码进行的。

原码:就是二进制表示法,最高位(左侧)为符号位, “0” 表示正数, “1” 表示负数,如:7的原码为00000111,-7的原码为10000111。

反码:正数的反码与原码相同,负数的反码是对原码【符号位】以外的其他数字取反(0、1互换),如:7的反码为00000111,-7的反码为11111000。

补码:正数的补码与原码相同,负数的补码是其反码的末位(右侧)加1,如:7的补码为00000111,-7的补码为11111001。

posted @ 2015-08-20 21:33  ilmari  阅读(199)  评论(0编辑  收藏  举报