作业1
Topic sourcepackage com.test;import java.util.Deque;import java.util.LinkedList;/** * @author ygr * @description 栈练习 * @date 2021/10/27 */public class StackTest { public static void main(String[] args) { //整数转换为16进制 String hex = toHex(12500); if (hex.equalsIgnoreCase("30D4")) { System.out.println("测试通过"); } else { System.out.println("测试失败"); } } /** * 利用Stack把一个给定的整数转换为十六进制 * * @return java.lang.String * @params n */ private static String toHex(int n) { //初始化一个队列 Deque<String> deque = new LinkedList<>(); //商数 int quotient = n / 16; //余数 int remainder = n % 16; //商不为0时继续做除法运算 while (quotient != 0) { //10~15的余数转换为对应的字母再放到队列 switch (remainder) { case 10: deque.push("A"); break; case 11: deque.push("B"); break; case 12: deque.push("C"); break; case 13: deque.push("D"); break; case 14: deque.push("E"); break; case 15: deque.push("F"); break; default: deque.push(String.valueOf(remainder)); break; } //使用获得的商取新余数 remainder = quotient % 16; //使用获得的商获取新商 quotient /= 16; } //被除数除尽商为零时,余数再次放入队列 deque.push(String.valueOf(remainder)); //取出队列 String hexStr = ""; while (!deque.isEmpty()){ hexStr += deque.pop(); } return hexStr; }}
- 1
云外方天