diff --git a/README.md b/README.md deleted file mode 100644 index 1e192cb..0000000 --- a/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# computer - diff --git a/computer.java b/computer.java index 5555321..c6dfb8f 100644 --- a/computer.java +++ b/computer.java @@ -33,7 +33,35 @@ public class computer { return decimal; } + // 将十进制数转换为任意进制数 + public static String fromDecimal(int decimal, int base) { + if (base < 2 || base > 16) { + throw new IllegalArgumentException("Base must be between 2 and 16"); + } + + StringBuilder number = new StringBuilder(); + + // 当十进制数大于0时,持续转换 + while (decimal > 0) { + int remainder = decimal % base; + char digit; + // 处理0-9 + if (remainder < 10) { + digit = (char) ('0' + remainder); + } + // 处理10-15(A-F) + else { + digit = (char) ('A' + (remainder - 10)); + } + + number.insert(0, digit); // 在字符串的开头插入新的字符 + decimal /= base; // 更新十进制数,去掉已转换的部分 + } + + // 如果转换后的字符串为空(即输入的十进制数为0),则返回"0" + return number.length() == 0 ? "0" : number.toString(); + } public static void main(String[] args) { Scanner scanner = new Scanner(System.in);