您的位置:首页 > 编程语言 > Java开发

java十进制转换为二进制、八进制和十六进制

2017-03-29 09:19 323 查看
/*
* 十进制--->二进制
*/
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]+",");

      }

       }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐