【发布时间】:2018-04-21 03:03:42
【问题描述】:
我已经将一些十进制数转换为二进制、八进制和十六进制系统。为此,我不必使用任何收藏和图书馆。所以现在我需要更改我的实现,因为我使用 String 来存储结果,而我应该使用 char 数组。
我目前的实现:
public static String convertDecimal(int number, int base){
String result = "";
while (number > 0) {
if (base == 16) {
int hexalNumber = number % base;
char hexDigit = (hexalNumber <= 9 && hexalNumber > 0) ?
(char) (hexalNumber + '0') :
(char) (hexalNumber - 10 + 'A');
result = hexDigit + result;
number = number / base;
}
if (base == 8 || base == 2) {
int remainder = number % base;
result = remainder + result;
number = number / base;
}
}
return result;
}
如何更改我的实现以便从方法中返回 char[]?我应该完全改变我的转换算法的逻辑吗?
如果有任何帮助,我将不胜感激。
【问题讨论】:
-
String 类有一个方法toCharArray。
-
使用
for循环而不是while 循环,而不是result = hexDigit + result做result[i] = hexDigit假设结果是一个char[] 并且i是你的迭代器对于base 8 和2 相同 -
@BadMiscuit 这应该行不通。你如何初始化这样一个数组?你会考虑多大的尺寸?
-
@Yash 数数
-
您需要更改转换算法的逻辑,因为它不处理负数。或零。首先为此编写一些单元测试。
标签: java arrays binary hex decimal