转载声明:商业转载请联系作者获得授权,非商业转载请注明出处.原文来自 © 呆萌钟 【JavaSe必知必会】07-进制的转换
前言
在上一节的文章中我们讲解了进制的概述与不同进制的表现形式,我猜肯定还有很多人懵懵懂懂的。老铁,莫慌,这是正常现象,接着往下看,你会发现,进制这小子算个啥子咧!
其他进制到十进制
通过十进制推出结论
其他进制到十进制的转换
十进制 十进制
12345 = 10000 + 2000 + 300 + 40 + 5
= 1*10^4 + 2*10^3 + 3*10^2 + 4*10^1 +5*10^0
= 10000 + 2000 + 300 + 40 + 5
= 12345
系数:每一个位上的数据值本身就是系数
基数:x进制的基数就是x
权:我们针对每一个位上的数据进行编号,从右边,并且是从0开始编号,
这个编号就是该位上的数据的权值
每一个位上的系数*基数^权次幂相加
把0b100,0100,0x100转换成十进制
二进制:100 十进制:4
100 =1*2^2 + 0*2^1 + 0*2^0
=4 + 0 + 0
=4
八进制:100 十进制:64
100 =1*8^2 + 0*8^1 + 0*8^0
=64 + 0 + 0
=64
十六进制:100 十进制:256
100 =1*16^2 + 0*16^1 + 0*16^0
=256 + 0 + 0
=256
十进制到其他进制
通过十进制推出结论
十进制转其他进制
除基取余,直到商为0,余数反转
十进制 十进制
12345 12345
商 余数
12345
————— = 1234 % 5
10
1234
————— = 123 % 4
10
123
————— = 12 % 3
10
12
————— = 1 % 2
10
1
————— = 0 % 1
10
十进制:20 二进制:10100
20
——— = 10 % 0
2
10
——— = 5 % 0
2
5
——— = 2 % 1
2
2
——— = 1 % 0
2
1
——— = 0 % 1
2
结论:除基取余,直到商为0,余数反转。
十进制和二进制的快速转换
8421码
8421码是中国大陆的叫法,8421码是BCD代码中最常用的一种。 在这种编码方式中每一位二进制代码的1都是代表一个固定数值, 把每一位的1代表的十进制数加起来,得到的结果就是它所代表的十进制数码。
二进制 1 1 1 1 1 1 1 1
十进制 128 64 32 16 8 4 2 1
二进制到十进制的转换:
1010100 = 64 + 16 + 4 = 84
十进制到二进制的转换:
100 = 0b1100100
问题:任意的x进制到y进制的转换,如何转?
x进制 ---> 十进制
十进制 ---> y进制
二进制和八进制,十六进制如何转换
- 以十进制作为桥梁
- 二进制到八进制 3位组合
- 二进制到十六进制 4位组合
二进制到八进制,十六进制
A:二进制到十进制,十进制到八进制或十六进制
B:拆分组合法
0b1011001 八进制
方式1:
0b1011001 = 64+16+8+1 =89
89 = 0131
89/8=11 1
11/8=1 3
1/8=0 1
方式2:
0b1011001
001 011 001
1 3 1
0131