黑马程序员技术交流社区

标题: 关于使用查表法实现十进制到二进制,八进制,十六进制的转换 [打印本页]

作者: sjaiwl    时间: 2015-5-27 09:09
标题: 关于使用查表法实现十进制到二进制,八进制,十六进制的转换
一,使用查表法实现进制之间的转换,能够使用函数实现,代码简洁,效率高。

public static void trans(int num, intbase,int offset) {
// 定义数据表
char[]chs = {'0', '1', '2','3', '4','5', '6', '7','8', '9','A',
'B', 'C', 'D', 'E' };
// 定义存储数组
char[] arr = new char[32];
// 定义标志位
int pos = arr.length;
// 转换
while (num != 0) {
//获取后几位
int temp = num & base;
//存储
arr[--pos] =chs[temp];
//移位
num = num >>> offset;
}
// 打印输出
for (inti =pos; i < arr.length;i++) {
System.out.print(arr[i]);
}
System.out.println();

}
这是一个定义好的转换函数,只需要不同转换传入不同的参数即可。


二,主函数调用

public static void main(String[]args) {
// TODO Auto-generated method stub
// 十进制转二进制,base为1,offset为1
trans(60, 1, 1);
// 十进制转八进制,base为7,offset为3
trans(60, 7, 3);
// 十进制转十六进制,base为15,offset为4
trans(60, 15, 4);

}
例如:将60分别转换为二进制,八进制和十六进制,只需要改变base和offset相应的值即可。

这种方法我觉得挺有用的,给大家分享一下。。。。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2