欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

十进制与十六进制相互转换

程序员文章站 2022-03-13 17:45:30
...

十进制与十六进制相互转换

题目:实现十进制与十六进制的相互转换


/**
 * @author XTU熊大
 *自定义两个方法实现
 *十六进制转换成十进制
 *十进制转换成十六进制
 */
public class HexToDecimal {
	public static void main(String[] args){
		System.out.println("输入一个数字:");
		Scanner in= new Scanner(System.in);
		int shu=in.nextInt();
		System.out.println("对应十六进制数为:"+decimalToHex(shu));
		System.out.println("对应十进制数为:"+hexToDecimal(decimalToHex(shu)));
	}
	/**
	 * 十进制转十六进制
	 * @param shu 将要转换的十进制数
	 * @return 对应数字的十六进制
	 */
	public static String decimalToHex(int shu) {
		// TODO Auto-generated method stub
		int temp;
		String hex="";
		while(shu>0){
			temp=shu%16;
			shu=shu/16;
			if(temp>=1&&temp<=9){
				hex=temp+hex;
			}else{
				hex=(char)(temp-10+'A')+hex;
			}
		}
		return hex;
	}
	/**
	 * 十六进制转十进制
	 * @param hex 要进行转换的十六进制的数
	 * @return 对应的十进制数
	 */
	public static int hexToDecimal(String hex){
		int shu=0;
		for(int i=0;i<hex.length();i++){
			char f=hex.charAt(i);
			if(f>='0'&&f<='9'){
				shu+=(f-'0')*Math.pow(16, hex.length()-i-1);
			}else{
				shu+=(f-'A'+10)*Math.pow(16, hex.length()-i-1);
			}
		}
		return shu;
	}
}