写了一个程序用于十进制和二进制,八进制,十六进制之间的转换
public class Transaction {
//十进制转为二进制
public static String toTwo(int num) {
return Trans(num,1,1);
}
//十进制转为八进制
public static String toEight(int num) {
return Trans(num,7,3);
}
//十进制转为十六进制
public static String toSixteen(int num) {
return "0x"+Trans(num,15,4);
}
public static String Trans(int num,int base,int offset) {
//创建表
char[] ch= {'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;
//通过循环对num进行& >>等运算
while(num!=0) {
int temp=num & base ;
//根据&运算后的结果最为角标查表,获取相应的字符
//并将字符存储到临时容器中
arr[--index]=ch[temp];
//对num进行右移
num=num>>>offset;
}
return toString(arr,index);
}
public static String toString(char[] arr,int index) {
String temp="";
for(int x=index;x<arr.length;x++) {
temp=temp+arr[x];
}
return temp;
}
public static void main(String[] args) {
int num=100;
String str=toTwo(num);
System.out.println("二进制为"+str);
String str2=toEight(num);
System.out.println("八进制为"+str2);
String str3=toSixteen(num);
System.out.println("十六进制为"+str3);
}
}