[Java教程 06] 进制的转换

转载声明:商业转载请联系作者获得授权,非商业转载请注明出处.原文来自 © 呆萌钟 【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进制
		

二进制和八进制,十六进制如何转换

  1. 以十进制作为桥梁
  2. 二进制到八进制 3位组合
  3. 二进制到十六进制 4位组合
二进制到八进制,十六进制
	A:二进制到十进制,十进制到八进制或十六进制
	B:拆分组合法

0b1011001						八进制
方式10b1011001 = 64+16+8+1 =89
	89	      = 0131
		89/8=11		1
		11/8=1		3
		1/8=0		1
方式20b1011001
		001		011		001
		1		3		1

0131

 

你可能感兴趣的:(java梳理,JavaSE专题)