进制转换

来源:互联网 发布:现代汉语词典软件 编辑:程序博客网 时间:2024/04/30 10:04
class Binary {public static void main(String[] args) {//转换成二进制trans(6,1,1);//转换成八进制trans(60,7,3);//转换成十六进制trans(60,15,4);}//十进制转换成二进制     public static void toBinary(int num){ StringBuffer result=new StringBuffer(); while(num>0){ result.append(num%2); num=num/2; } System.out.println(result.reverse()); } //十进制转换成二进制(2) public static void toBinary2(int num){ char[] chs={'0','1'}; char[] result=new char[32]; int pos=result.length-1; while(num!=0){ int temp=num & 1; result[pos--]=chs[temp]; num=num>>>1; } for(int i=pos+1;i<result.length;i++){ System.out.print(result[i]+","); } }//十进制转换成十六进制(1)public static void toHex(int num){StringBuffer result= new StringBuffer();for(int i=0;i<8;i++){          int temp=num & 15;  if((temp-10)>=0){  result.append((char)(temp-10+'A'));}  else {  result.append(temp);}   num=num>>4;}System.out.println(result.reverse());}//十进制转换成十六进制(2)public static void toHex2(int num){char [] chs={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};//StringBuffer result=new StringBuffer();//字符数组,不定义成整型数组    char [] result=new char[8]; int pos=result.length-1;while(num!=0){int temp=num&15;result[pos--]=chs[temp];num=num>>>4;}    for(int i=pos+1;i<result.length;i++)   //括号里面要是字符串才行。不能用单引号    System.out.print(result[i]+",");}//综合转换public static void trans(int num,int base,int offset){     if(num==0){            System.out.print("0");return;    }  char[] chs={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};  char[] result=new char[32];  int pos=result.length-1;   while(num!=0){  int temp=num&base;  result[pos--]=chs[temp];  num=num>>>offset;  }  for(int i=pos+1;i<result.length;i++){  System.out.print(result[i]+",");    }  System.out.println();}}

0 0
原创粉丝点击