黑马程序员技术交流社区
标题:
不用java提供的转换函数,写的关于十进制转换成2,8,16进制的小程序
[打印本页]
作者:
czb
时间:
2014-9-13 14:10
标题:
不用java提供的转换函数,写的关于十进制转换成2,8,16进制的小程序
import java.util.Scanner;
class czb{
static char chs[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
static int pos=0;
static char[] a=new char[32];
static void change(int num,int yuwho,int offset){
while(num!=0){
int temp=num&yuwho;
a[pos++]=chs[temp];
num=num>>>offset;
}
for(int i=pos-1;i>=0;i--){
System.out.print(a[i]+" ");
}
System.out.println();
}
public static void main(String args[]){
System.out.println("请输入一个十进制数");
Scanner in=new Scanner(System.in);
int num=in.nextInt();
System.out.println("请选择要将它转换成的进制数,输入1转换为二进制,输入2转换为八进制,输入3转换为十六进制");
int choice=in.nextInt();
switch(choice){
case 1:
change(num,1,1);
break;
case 2:
change(num,7,3);
break;
case 3:
change(num,15,4);
break;
default:
return;
}
}
}
复制代码
作者:
czb
时间:
2014-9-13 14:22
我想了想该代码可以进行一下优化,在输入num后进行一次判断,如果输入的值是0或1,可以直接输出对于的2,8,16进制数,然后直接break;因为它们对应的几个进制数都一样。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2