写一个函数trans();
1 能够进行十进制转二进制
2 能够进行十进制转八进制
3 能够进行十进制转十六进制
4 封装函数
代码实现:
class ArraryTest { public static void main(String[] args) { int num=60; String str_Bin=toBinary(num); String str_Oct=toOctal(num); String str_Hex=toHex(num); System.out.println("自己定义的转换"); System.out.println("bin: "+str_Bin); System.out.println("oct: "+str_Oct); System.out.println("hex: "+str_Hex); System.out.println("系统自带的转换"); System.out.println(Integer.toBinaryString(60)); System.out.println(Integer.toOctalString(60)); System.out.println(Integer.toHexString(60)); } ///十进制转十六进制 public static String toHex(int num){ return "0x"+trans(num,15,4); } ///十进制转二进制 public static String toBinary(int num){ return trans(num,1,1); } ///十进制转八进制 public static String toOctal(int num){ return "0"+trans(num,7,3); } ///调用trans函数根据需求进行转换 public static String trans(int num,int base,int offset){///base 按位与的数 offset 右移位数 if(num==0) return "0"; ///打表 完成进制转换 char []chs={'0','1','2','3','4', '5','6','7','8','9', 'A','B','C','D','E','F'}; char []arr=new char[32]; int index=arr.length; ///具体操作 while(num!=0){ int temp=num&base; arr[--index]=chs[temp]; num=num>>>offset; } return toString(arr,index); } ///数字转字符串函数 public static String toString(char []arr,int pos){ String temp=""; for(int i=pos;i<arr.length;++i){ temp+=arr[i]; } return temp; } }
运行结果:
我的第一个JAVA程序感觉还好
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/zp___waj/article/details/47361169