A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

一,使用查表法实现进制之间的转换,能够使用函数实现,代码简洁,效率高。

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相应的值即可。

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

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马