我有一個家庭作業,我必須將底座轉換爲底數10.我有一些給定的數字,它們是「basen」。我必須轉換這些基地立足10,我卡在只有部分是這部分代碼:在Java中轉換爲基數10?
answer = ; // Not sure what I have to put in here
我已經看到了一些其他職位有關轉換到底數十,但我只是不知道如何將它們合併到我的代碼中。
public class BaseN {
public static final int BASEN_ERRNO = -1;
public static int digit = 0;
public static void main(String[] argv) {
basen(512, 6);
basen(314, 8);
basen(49, 5);
basen(10101, 2);
}
public static void basen(int n, int b) {
int ans = basen(n, b, 1, 0);
if (ans == BASEN_ERRNO)
System.out.println(n + " is not a valid base-" + b + " number");
else
System.out.println(n + " base-" + b + " = " + ans + " base-10");
}
public static int basen(int number, int base, int placevalue, int answer) {
if (number == 0) return answer;
digit = number % 10;
if (digit >= base) return BASEN_ERRNO;
answer = 1;// not sure what to put here
number = 0;
placevalue = 0;
return basen(number, base, placevalue, answer);
}
}
當處理數字的基-n表示時,您隱含地談論了一串字符。你的代碼完全處理'int'值,它代表二進制數字(基數2),並且沒有能力在其他基數中表示數字。你將不得不重新思考你的問題的定義,所以輸入是一個基本字符串,輸出是一個基於10的字符串。 –
Java對你有一個有用的例程:'Integer.parseInt(numberString,base) '如果提供的String不代表給定基數的有效數字,將拋出'NumberFormatException'。如果那不是你的老師會好起來的,你能告訴我們他/她想要你做什麼嗎? –
@Ted Hopp給了你一個大祕密,一個數字就是這樣,而這些基礎是關於字符串的。你是否熟悉數字基礎?對於基數'b',它是係數序列'd,0 <= d