我正在尝试编写一种方法,而无需使用任何预编写的例程,将八十个数字转换为Java中的二进制。但是,我似乎被困。我已经把头贴在墙上已经两天了,似乎无法弄清楚。我们尚未介绍数组,因此我能够在网上找到很多我不理解的答案,无论如何都无法使用。如果有人可以将我指向写作方向,我将非常感谢。谢谢。
我的代码:
public static String getBinaryNumber(int octalInput) {
int remainder;
String binValue = "";
do {
remainder = (octalInput / 2) % 2;
binValue += remainder;
octalInput /= 2;
} while (octalInput != 0);
return binValue;
}
早些时候,我试图将OctalInput转换为字符串,一对一地拿每个数字,然后将其转换,但我的天文数量很大。老实说,我不知道从这里去哪里,如果有人愿意指导我的方法,我会非常感谢。
尝试回答问题的标题在不使用预编写例程的情况下转换为二进制的标题:
public int octalToBinary(String octal) {
int binary = 0;
for (int i = 0; i < octal.length(); i++) {
char octalDigit = octal.charAt(i);
int octalDigitValue = octalDigit - '0';
// Octal must be 0 - 7
if (0 <= octalDigitValue && octalDigitValue <= 7) {
binary = binary << 3 + octalDigitValue;
} else {
throw new NumberFormatException("Invalid octal number " + octal);
}
}
return binary;
}
这使用length
和charAt
。我怀疑这是可以接受的。getBytes
将是合理的替代品。