//主函数,同样和C中的主函数类似
public static void main(String[] args) {
//创建数组
// 类似于C代码 String temp[100];
String temp[] = new String[100];
// 类似于C代码 String array[100];
String array[] = new String[100];
// 类似于C代码 String hexChar[] = { };
String[] hexChar = {"A", "B", "C", "D", "E", "F"};
//输入 类似与C代码
Scanner scanner = new Scanner(System.in);
//待转换的数 类似与C代码的输入函数 scanf("%d",&num)
int num = scanner.nextInt();
//待转换的进制 类似与C代码的输入函数 scanf("%d",&radix)
int radix = scanner.nextInt();
//记录数组长度
int length = 0;
do {
int r = num % radix;
//10 -> 16进制的逻辑处理
if (radix == 16) {
if (r >= 10) {
// r%10 求余匹配十六进制中的字符(10-A 11-B ....)
temp[length++] = hexChar[(r % 10)];
} else {
// +"" 为隐式类型转换,将int转换成String类型
temp[length++] = r + "";
}
//10->2 或者 10->8进制的逻辑处理
} else {
temp[length++] = r + "";
}
//求商
num /= radix;
} while (num > 0);
int index = 0;
//数组倒排
for (int t = length - 1; t >= 0; t--) {
array[index++] = temp[t];
}
//打印转换的结果
for (int i = 0; i < length; i++) {
//System.out.print 类似于 print("%s",array[i])函数
System.out.print(array[i]);
}
}
十进制转二进制八进制16进制
最新推荐文章于 2021-12-06 13:21:42 发布