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

Java中进制转换

2012-12-19 19:26 183 查看
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();

}

}

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