本帖最后由 qwe8234118 于 2013-3-29 19:07 编辑
- class java0329d3
- {
- public static void hanshu(int x,int y,int z)
- {
- if(x==0)
- {
- System.out.println("您输入的数是:"+0);
- return;
- }
- if(y==0)
- {
- return;
- }
- System.out.print("您输入的数转换后为:");
- char [] shuzu = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
- char [] arr=new char [32];
- int pos = arr.length;
- while (x!=0)
- {
- int temp =x&y;
- arr[--pos]=shuzu[temp];
- x=x>>>z;
- }
- for (int a=pos;a<arr.length ;a++ )
- {
- System.out.print(arr[a]);
- }
- }
- public static void to(int x,int y)
- {
- int a=0,b=0;
- switch (y)
- {
- case 2:
- a=1;b=1;
- break;
- case 8:
- a=7;b=3;
- break;
- case 16:
- a=16;b=4;
- break;
- default:
- System.out.println("对不起老师没教我转换成你需要的这个进制的方式");
- break;
- }
- hanshu(x,a,b);
- }
- public static void main(String[] args)
- {
- to(60,6);//逗号前输入想转化的十进制数,逗号后输入想转换的进制数。
- //逗号后面只能输入2.8.16. 输入任何非2.8.16的数字都将默认为16进制。
- }
- /*
- public static void to(int x,int y)
- {
- char [] shuzu = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
- String str="";
- if(x==0)
- {
- System.out.println("您输入的数是:"+0);
- return;
- }
- System.out.print("您输入的数转换后为:");
-
-
- while (x!=0)
- {
- int temp =x%y;
- str= shuzu[temp]+str;
- x=x/y;
- }
- System.out.println(str);
-
- }
-
- public static void main(String[] args)
- {
- to(60,8);//逗号前输入想转化的十进制数,逗号后输入想转换的进制数。
- //逗号后面只能输入2.8.16. 输入任何非2.8.16的数字都将默认为16进制。
- }
- */
- }
复制代码 谢谢楼下的学长
虽然三楼的公式有一句我看不懂,还有没解决我报错的问题。
不过让我知道原来代码还可以这样写啊
谢谢了 其实不是我想打这么多行,关键是没学到后期。 |