进制转换
1、其他进制转十进制:
java中进制表示:
- 二进制:0b0001
- 八进制:0235
- 十六进制:0x256
二进制转十进制:
转换规则从最低位(最右边)开始,将每个为上的数提取出来,乘以2的(位数-1)次方,然后求和。
0b0101
---->
1*2^(1-1)+0*2^(2-1)+1*2^(3-1)=1+0+4=5
八进制转十进制:
转换规则从最低位(最右边)开始,将每个为上的数提取出来,乘以8的(位数-1)次方,然后求和。
0235
---->
5*8^(1-1)+3*8^(2-1)+2*8^(3-1)=5+24+128=157
十六进制转十进制:
转换规则从最低位(最右边)开始,将每个为上的数提取出来,乘以16的(位数-1)次方,然后求和。
ox256
---->
6*16^(1-1)+5*16^(2-1)+2*16^(3-1)=6+80+512=598
2、十进制转其他进制:
十进制转二进制:
转换规则:将该数不断除以2,直到商为0为止,然后将每一步的得到的余数倒过来,就是对应的二进制数
56
--->
56%2=0
28%2=0
14%2=0
7%2=1
3%2=1
1%2=1
0%2=0
----> 0b00111000
十进制转八进制:
转换规则:将该数不断除以8,直到商为0为止,然后将每一步的得到的余数倒过来,就是对应的八进制数
56
---->
56%8=0
7%8=7
0%8=0
----> 070
十进制转十六进制:
转换规则:将该数不断除以16,直到商为0为止,然后将每一步的得到的余数倒过来,就是对应的十六进制数
56
---->
56%16=8
3%16=3
0%16=0
---->0x38
3、二进制转八进制和十六进制
二进制转八进制:
规则:从低位开始,将二进制的每三位一组,转成对应的八进制数即可
0b00001101
---->
101--->十进制:1*1+0+4=5---->八进制:5
001--->十进制:2----八进制:1
最后结果:015
二进制转十六进制:
规则:从低位开始,将二进制的每四位一组,转成对应的十六进制数即可
0b11100010
----->
0010 ---> 十进制:2 ---->十六进制:2
1110 --->十进制:0+2+4+8=14 --->十六进制:E
最后结果:0xE2
4、八进制和十六进制转二进制
八进制转二进制:
将八进制的每一位,转成对应的一个3位的二进制数
0235
---->
5--->101
3--->011
2--->010
--->0b 010 011 101
十六进制转二进制:
将十六进制的每一位,转成对应的一个4位的二进制数
0x23B
----->
B --->11--->1011
3--->3--->0011
2--->2--->0010
--->0x0010 0011 1011
5、原码、反码、补码(重点)
1、二进制的最高位(最左边)是符号位:0表示正数,1表示负数;
2、正数的原码、反码、补码都是一样的(三码合一);
3、负数的反码=原码符号位不变,其他位取反;
4、负数的补码= 反码+1 ;负数的反码= 补码-1
5、0的反码,补码都是0
6、java中没有无符号数,java中的数都是有符号的
7、在计算机运算的时候,都是以补码的方式运算的
8、看到的运算结果是原码。