Java中进制转换

来源:互联网 发布:米思米软件安装方法 编辑:程序博客网 时间:2024/05/12 18:25

package study.array;

public class Trans {

 public static void main(String[] args){
  
 // toHex(-45);
  toBinary(-6);
  toOctal(26);
 //java中的进制转换
  System.out.println(Integer.toBinaryString(-6));
 }
 //十六进制
 public static void toHex(int num){
  trans(num,15,4);
 }
 //二进制
 public static void toBinary(int num){
  trans(num,1,1);
 }
 //八进制
 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'};
/*
查表会查到比较多的数据,数据一多,就先存起来,再进行操作。所以要定义一个数组,临时容器
*/
char[] arr=new char[32];
//pos 临时容器的角标
int pos=arr.length;

while(num!=0){
  int temp=num & base;
//通过将角标查表 查到后存入数组
  arr[--pos]=chs[temp];
  num=num>>>offset;

}
       System.out.println("pos="+pos);
   for (int i = pos; i <arr.length; i++) {
           System.out.print(arr[i]);
          }
      System.out.println();
}
}

原创粉丝点击