蓝桥杯 十进制转十六进制 十六进制转十进制(Java)

1.题目:

问题描述
  给出一个非负整数,将它表示成十六进制的形式。
输入格式
  输入包含一个非负整数a,表示要转换的数。0<=a<=2147483647
输出格式
  输出这个整数的16进制表示
样例输入 30
样例输出 1E

做十六进制转十进制直接用的API,后面做十进制转十六进制时我就说自己写一遍

2.十进制转十六进制思路:

写一个方法,传入int类型的十进制数,最后返回一个十六进制的字符串结果。此时返回的字符串是逆序的,最后输出时反向即可。
具体处理:因为是转十六进制,所以不断对16求余即可,判断余数的大小,大于9以后就要以大写字母的形式输出了,此处使用字符串拼接的方式。
内联代码片

import java.util.Scanner;
public class DecToHex {
    
    

	public static void main(String[] args) {
    
    
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		String s = decToHex(a);
		for(int i = s.length() - 1; i >= 0; i--) {
    
    
			System.out.print(s.charAt(i));
		}
	
	}
	public static String decToHex(int a) {
    
    
		String s = "";
		int m = 0;
		int n = a;
		if(a == 0) {
    
    
			s += '0';
			return s;
		}
		while(n > 0) {
    
    
			m = n % 16;
			n = n / 16;
			switch(m) {
    
    
			case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: 
				s += m;  break;
			case 10: s += 'A'; break;
			case 11: s += 'B'; break;
			case 12: s += 'C'; break;
			case 13: s += 'D'; break;
			case 14: s += 'E'; break;
			case 15: s += 'F'; break; 
			    
			}
		}
		return s;
	}
}

猜你喜欢

转载自blog.csdn.net/balder_girl/article/details/113478695