Java十进制转换为二进制、八进制、十六进制

public class JinZhiZhuanHua {

	public static void main(String[] args) {
		//使用查表法将十进制转换为二进制、八进制、十六进制
		int num=60;
		toBin(num);
		tooct(0);
		toHex(60);
	   }
		//转换为二进制
	public static void toBin(int num){
		conversion(num,1,1);
		}
		//(转换为八进制
	public static void tooct(int num){
		conversion (num,7,3);
		}
		//转换为十六进制
	public static void toHex(int num){
		conversion (num,15,4);
		}
		//转换
	public static void conversion(int num, int diwei, int yiwei) {
	     //如果num等于0,结果输出为0
		if (num==0){
			System.out.println("num="+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];
			//定义一个操作数组的指针
			int pos=arr.length;
			//利用与低位最大值的方式取出低位,存到临时数组中
			while(num!=0){
			arr[--pos]=chs[num&diwei];//--pos倒著往临时容器里存
			num >>=yiwei;//无条件右移相应位数
			}
			//打印转换后的结果
			for( int x=pos;x<arr.length; x++)
			System.out.print(arr[x]);
			//换行
			System.out.println();
	}

}

猜你喜欢

转载自blog.csdn.net/lihua5419/article/details/78183636