进制
1、在Java中针对整数常量提供了四种表现形式
二进制
由这样的1,0组成的数据就是二进制数据。以0b开头
八进制s
由0、1…7组成,以0开头
十进制
由0、1…9组成,整数默认是十进制的
十六进制
由0、1…9、a、b、c、d、e、f(大小写均可)。以0X开头
2、进制转换
(1)其他进制到十进制
系数:就是每一个位上的数值
基数:x进制的基数就是x
权:对每一个位上的数据,从右边,并且从0开始编号,对应的编号就是该数据的权。
结果:系数*基数^权次幂之和。
举例
二进制 ————> 十进制
100 = 1 * 2 ^ 2 +0 * 2 ^ 1 + 0x2^0
= 4
八进制 ————> 十进制
100 = 1* 8 ^ 2 + 0 * 8 ^ 1 + 0 *8 ^ 0
= 64
十六进制 ————> 十进制
100 = 1* 16 ^ 2 + 0 * 16 ^ 1 + 0 * 16 ^ 0
= 256
0x3c = 3 * 16 ^ 1 + c * 16 ^ 0
= 48 +c
= 60
(2)十进制到其他进制除基取余,直到商为0,余数反转。
十进制 1234 ————> 十进制 1234
1234 = 1234/10 余数
= 1234 …4
= 123/10
= 12… 3
= 12/10
= 1… 2
十进制 20 ————> 二进制 0b10100
20 = 20/2
= 10 … 0
= 20/2
= 5 … 0
= 5/2
= 2 … 1
= 2/2
= 1 … 0
(3)进制转换的快速转换法 A:十进制和二进制间的转换 8421码是bcd码的一种
二进制 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
---|---|---|---|---|---|---|---|---|
十进制 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
二进制到十进制的转换 :
方法:对应位置的数值相加
0b001010100 = 64 + 16 + 4 = 84
十进制到二进制的转换 :
方法:
从左向右,第一个由数减对应的十进制数值,之后的由差进行对比,如果大于用1代替反之则用0代替相对应的位置。
100 = 0b01100100
任意的X进制到Y进制的转换
X进制——>十进制——>Y进制
B:二进制到八进制,十六进制的转换
·二进制到八进制 3位组合
·二进制到十六进制 4位组合
例:
①:二进制到十进制,十进制到八进制或十六进制的转换
②:差分组合法
0b1011001 ——> 八进制
方式①;
0b1011001 = 64+16+8+1 = 89
89 = 0131
89 = 89/8
= 11 …1
= 11/8
= 1 …3
方式②;
0b1011001
001 011 001
1 3 1