package com.test1127; import java.util.Deque; import java.util.LinkedList; /** * @ClassName : test1127 * @Description : test1127 * @Author : YangJiuZhou * @Date: 2022-11-27 11:47 */ public class StackDecimalToHex1127 { public static void main(String[] args) { String hex = toHex(12500); if (hex.equalsIgnoreCase("30D4")) { System.out.println("测试通过"); } else { System.out.println("测试失败"); } } static String toHex(int n) { //在java中利用双端队列来实现stack栈 Deque<Integer> s = new LinkedList<>(); //创建一个StringBuilder为之后的字符串拼接做准备 StringBuilder s1 = new StringBuilder(); //判断余数为零和除数都为零时才停止循环 while (n%16!=0 || n/16!=0){ s.push(n%16); n = n/16; } //判断LinkedList是否为空,不为空则一直pop()出元素 while (!s.isEmpty()){ int s2 = s.pop(); if(s2 == 10 ){ s1.append("A"); }else if(s2 == 11){ s1.append("B"); }else if(s2 == 12){ s1.append("C"); }else if(s2 == 13){ s1.append("D"); }else if(s2 == 14){ s1.append("E"); }else if(s2 == 15){ s1.append("F"); }else if(s2 == 16){ s1.append("E"); }else { s1.append(s2); } } //将StringBuilder转换为String对象返回 String s3 = s1.toString(); return s3; } }
Sign in to make a reply
。。。