Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个十进制");
Integer ten = scanner.nextInt();
System.out.println("请输入转换的进制(二进制到三十六进制)");
Integer scale = scanner.nextInt();
StringBuilder result = new StringBuilder();
char[] arr = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f','g','h'
,'i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
boolean flag = true;
while (flag) {
Integer temp = ten / scale;
//使用前插法将余数添加到前面来
result.insert(0,arr[ten%scale]);
if (temp < scale) {
// 跳出循环,并将最后的商添加到前面来
result.insert(0,arr[temp]);
flag = false;
}
ten = temp;
}
//打印加上进制前缀(十进制就不搞0d了自己随意)
switch (scale) {
case 2:
System.out.println("0b" + result);
break;
case 8:
System.out.println("Oo" + result);
break;
case 16:
System.out.println("0x" + result);
break;
default:
System.out.println(result);
break;
}
Java十进制转任意进制(2~36)
于 2024-06-10 14:45:07 首次发布