/*
* 十进制--->二进制
*/
public static void toBin1(int num){
trans(num, 1, 1);
}
/*
* 十进制--->八进制
*/
public static void toBa(int num){
trans(num, 7, 3);
}
/*
* 十进制--->十六进制
*/
public static void toHex1(int num){
trans(num, 15, 4);
char[] ch={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
char[] arr=new char[32];
int pos=arr.length;
while(num!=0){
int temp=num&base;
arr[--pos]=ch[temp];
num=num>>offset;
}
for(int x=pos;x>arr.length;++x){
System.out.println(arr[x]);
}
//定义二进制的表
char[] chs={'0','1'};
//定义一个临时存储容器
char[] arr=new char[32];
//定义一个操作数组的指针
int pos=arr.length;
while(num!=0){
int temp=num&1;
arr[--pos]=chs[temp];
num=num>>1;
}
for(int i=pos;i<arr.length;++i){
System.out.println(arr[i]+",");
}
/*
* 查表法:将所有的元素临时存储起来,建立对应关系。
* 每一次&15后的值作为索引去查建立好的表,就可以找对应的元素。
* 这样比num-10+‘a’简单的多
*/
//十进制转换为十六进制,通用适用于负数
char[] ch={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
//定义一个临时容器,一个int只有32位,对应的十六进制就是八位
char[] ch1=new char[8];
int pos=ch1.length;
while(num!=0){
int temp=num &15;
ch1[--pos]=ch[temp];
num=num>>4;
}
for(int i=pos;i<ch1.length;++i){
System.out.println(ch1[i]+",");
}
}
* 十进制--->二进制
*/
public static void toBin1(int num){
trans(num, 1, 1);
}
/*
* 十进制--->八进制
*/
public static void toBa(int num){
trans(num, 7, 3);
}
/*
* 十进制--->十六进制
*/
public static void toHex1(int num){
trans(num, 15, 4);
}
//将转换为二进制和十六进制相同的部分进行封装,将其不一样的地方作为参数
public static void 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 pos=arr.length;
while(num!=0){
int temp=num&base;
arr[--pos]=ch[temp];
num=num>>offset;
}
for(int x=pos;x>arr.length;++x){
System.out.println(arr[x]);
}
}
//转换为二进制
public static void toBin(int num){//定义二进制的表
char[] chs={'0','1'};
//定义一个临时存储容器
char[] arr=new char[32];
//定义一个操作数组的指针
int pos=arr.length;
while(num!=0){
int temp=num&1;
arr[--pos]=chs[temp];
num=num>>1;
}
for(int i=pos;i<arr.length;++i){
System.out.println(arr[i]+",");
}
}
//转换为十六进制
public static void toHex(int num){/*
* 查表法:将所有的元素临时存储起来,建立对应关系。
* 每一次&15后的值作为索引去查建立好的表,就可以找对应的元素。
* 这样比num-10+‘a’简单的多
*/
//十进制转换为十六进制,通用适用于负数
char[] ch={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
//定义一个临时容器,一个int只有32位,对应的十六进制就是八位
char[] ch1=new char[8];
int pos=ch1.length;
while(num!=0){
int temp=num &15;
ch1[--pos]=ch[temp];
num=num>>4;
}
for(int i=pos;i<ch1.length;++i){
System.out.println(ch1[i]+",");
}
}