java学习——98.十进制转换为其它进制

本篇介绍如何将十进制转换为二进制、八进制或十六进制。

十进制转换为二进制的方法是“除2取余法”,其他进制也可依此类推。

本例是通过main方法输入一个整数,并根据main中的语句将之转换为其他进制的数。

其完整代码如下:

import java.util.*;

public class Jinzhizhuanhuan {

public static String parseInto(int value,int radix) {//转换进制的方法,其中value是整数,radix是要转化的进制

if(radix==10)//因为输入的即为十进制数,所以不需要转换,直接输出即可。

return value+"的十进制数是"+value;

else if(radix==2||radix==8||radix==16) {//如果是其他进制,都是用除radix取余法

int n=value;//用n来存储value的值,目的是为了后面的转换

String s="";//用字符串来存储转换之后的进制值

while(n>0) {//当n>0时,执行此循环

if((n%radix)>=10) {//因为采用“除radix取余法”,二进制和八进制数可直接用其余数,而十六进制不可以,本if语句主要是10~15转换为a~f这六个十六进制中的符号

switch(n%radix) {

case 10:s+='a';break;

case 11:s+='b';break;

case 12:s+='c';break;

case 13:s+='d';break;

case 14:s+='e';break;

case 15:s+='f';break;

}

n=n/radix;

}

else {//二进制或者八进制可直接取余,但用此方法取出来的字符均是顺序放在字符串s中的

s+=n%radix;

n=n/radix;

}

}

String s1="";

for(int i=s.length()-1;i>=0;i--)//将s中的字符倒换顺序,得到正确的“除radix取余法”的解

s1+=s.charAt(i);

return value+"的"+radix+"进制数是"+s1;//将结果输出

}

else

return value+"不能转换为"+radix+"进制";//本例只输出二进制、八进制或者十六进制,计算机当中一般也不用其他进制,如果radix的值为其他,则会提示输出错误

}

public static void main(String args[]) {

Scanner scan=new Scanner(System.in);

System.out.println("请输入一个数:");

int n=scan.nextInt();

System.out.println(parseInto(n,10));

System.out.println(parseInto(n,2));

System.out.println(parseInto(n,8));

System.out.println(parseInto(n,16));

scan.close();

}

}

其运行结果如下:

(0)

相关推荐