要求实现十进制(正整数)到十六进制的转换,用户输入10进制的数,要求输出该数的16进制表示
注意: 要求输出的英文字母全部都是大写
十六进制是一种基数为16的数制,其中0到9的数字与A到F的字母表示10到15。
我们可以采用余数法来将10进制正整数转换成16进制,我们选择 栈数据结构 来作为容器.
Stack
),然后进入一个循环,直到输入的十进制数 n
变为0。n
除以16的余数,这个余数表示十六进制中的一个位。余数的范围是0到15。push
方法将余数添加到栈中。n
除以16,以准备进行下一次循环。这相当于将 n
右移4位。package day04;
import java.util.Scanner;
import java.util.Stack;
public class Test01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个十进制的正整数:");
int n = scanner.nextInt();
hexConversion(n);
}
public static void hexConversion( int n){
Stack stack = new Stack();
//循环取余
while(n!=0){
int remainder = n % 16;
stack.push(remainder);//压栈
n/=16;
}
//进制转换->输出
while(!stack.empty()){
int digit = (int)stack.pop();
if (digit<10){
System.out.print(digit);
}else{
char hexChar = (char) ('A' + (digit - 10));
System.out.print(hexChar);
}
}
}
}
求三连!!!