黑马程序员技术交流社区
标题:
进制转换函数问题
[打印本页]
作者:
龚建锋
时间:
2012-7-20 23:43
标题:
进制转换函数问题
class Trans
{
public static void main(String[] args)
{
trans(99,1,1);//二进制
trans(99,7,3);//八进制
trans(99,15,4);//十六进制
}
public static void trans(int num,int base,int offset)
{
char[] chs={'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(num!=0)
{
int temp=num&base;
arr[--pos]=chs[temp];
num=num>>>offset;
}
for(int x=pos;x<arr.length;x++)
{
System.out.println(arr[x]);
}
}
}
运行时, System.out.println(arr[x]);不加ln则运行结果如图1,加ln运行结果如图2,能有什么方法让输出结果是1100011 143 63 吗?
1.jpg
(2.93 KB, 下载次数: 76)
下载附件
2012-7-20 23:41 上传
图1
2.jpg
(4.49 KB, 下载次数: 77)
下载附件
2012-7-20 23:41 上传
图二
作者:
付蛟龙
时间:
2012-7-21 00:08
你的代码不变
--------------------------------------
for(int x=pos;x<arr.length;x++)
{
System.out.print(arr[x]); //[color=Red]改动1: 输出不用换行 [/color]
}
System.out.println();//[color=Red]转换函数结束时换行[/color]}
}
复制代码
作者:
张世威
时间:
2012-7-21 00:10
class Trans {
public static void main(String[] args) {
trans(99, 1, 1);// 二进制
//打印换行或者空格
trans(99, 7, 3);// 八进制
//打印换行或者空格
trans(99, 15, 4);// 十六进制
}
public static void trans(int num, int base, int offset) {
char[] chs = { '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 (num != 0) {
int temp = num & base;
arr[--pos] = chs[temp];
num = num >>> offset;
}
for (int x = pos; x < arr.length; x++) {
System.out.print(arr[x]); //1100011 143 63 这个地方不换行
}
System.out.println(); //当输完了一种进制数后,可以在这里换行,或者打印空格
//
System.out.print(" ");
}
}
1、就是没调用完一次trans 时,换行或者打印空格
2、可以在trans方法里面写,也可以在主函数的每次调用完一个方法后面写
3、哥们,看你的这个程序,写的还不错啊,用到了位运算,C语言应该蛮熟练的吧,哈哈
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2