黑马程序员技术交流社区
标题:
分享毕老师讲的进制转换程序
[打印本页]
作者:
肚小糖
时间:
2015-8-22 19:48
标题:
分享毕老师讲的进制转换程序
public class TransferDemo {
public static void main(String[] args){
toHex(15);
toBin(-7);
toOctal(32);
}
//十进制——>二进制
public static void toBin(int num){
trans(num,1,1);
}
//十进制——>十六进制
public static void toHex(int num){
trans(num,15,4);
}
//十进制——>八进制
public static void toOctal(int num){
trans(num,7,3);
}
//进制转换的通用方法。
public static void trans(int num, int base, int offset){
if (num == 0){
System.out.println("0");
return;
}
char[] chs = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
//定义arr用来存储转换后的数据
char[] arr = new char[32];
//pos记录转换后数据的指标,因为数据是从右往前进行转换,因此pos从最后的数组元素角标开始递减。
int pos = arr.length;
//将待转换数据的与base进行&运算,然后再向右无符号移动offset位。
while(num != 0){
int temp = num & base;
arr[--pos] = chs[temp];
num = num >>> offset;
}
//System.out.println("pos = "+pos);
//打印转换后的数
for(int x = pos; x < arr.length; x++){
System.out.print(arr[x]);
}
System.out.println();
}
}
复制代码
作者:
阮文江
时间:
2015-8-22 20:42
很强大,感谢楼主
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2