什么是进制转换?
比如说,从10进制转换成2进制,这样就是进制转换
我们该怎么去实现m进制转换成n进制
思想:
其实进制转换没有想得那么难,在java中我们可以借助字符串来帮助我们
首先我们可以将m进制表示的数写成字符串然后将其转换成某一个常用的进制类型(比如10进制、2进制)
然后再转到n进制,怎么转换成n进制呢,我们通过上述转换的进制类型对需要转换的进制依次取模运算以及除运算即可得到结果
怎么理解?就是比如你把十进制转换为二进制,
我们用短除法取余数倒过来数呗,其他进制除就改为n,余数也是倒着取
代码实现
package ZiFuChuan;
/*
* @ly
* 进制转换
*/
public class Test4 {
public static void main(String[] args) {
//讲一个n进制转换成m进制,比如3进制转换5进制
String s = "20120122"; //这个字符串中存储的是3进制数
int n = 0; //用来存储n的三进制的值
for(int i = 0;i<s.length();i++)
{
n = n*3+s.charAt(i)-'0';
}
System.out.println("转化前的十进制数字:"+n);
//转换5进制那么则需要将n的值一个个取出(从末尾向前取)
String s1 = "";
while(true) //短除法
{
if(n == 0) break;
s1 = n%5+s1; //因为是倒着取余数,所以s1不能写成s1+n%5。
n /= 5;
}
System.out.println("转化后的数字:"+s1);
}
}
这里实现了从三进制转换成五进制的代码,其思想就是通过字符串实现以及短除法取余这样的思想