2-36からベースを入力するたびにコードが必要です。10進数の数値を出力できます。これが私のコードです
package code;
public class solution{
public static int x2ten(String s, int base){
String[] bits = s.split("");
int result = 0;
for(int i=0; i < bits.length; i++ ){
int val = (Integer.parseInt(bits[bits.length-1-i])) * ((int)Math.pow(base,i));
val = charToInt(Integer.parseInt(bits[bits.length-1-i]))* ((int)Math.pow(base,i));
result += val;
}
return result;
}
public static int charToInt(char c){
char[] characters = {'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'};
for(int j = 0; j<characters.length; j++){
if(characters[j] == c){
return j;
}
}
return -1;
}
public static void main(String[] args)
{
System.out.println(x2ten("1101",2));
}
}
最初に表示されるcharToIntに問題があり、charToInt(char c)をcharToInt(int c)に変更する必要があると言われました。しかし、charToIntの目的は、1Aのような文字を入力したものを変換することであり、10進数で26を出力できます。
これはすでに発明されたホイールです:
public static int x2ten(String s, int base) {
return Integer.parseInt(s, base);
}
同じ署名を持つJDKからのメソッドを優先して、メソッドを完全に削除することをお勧めします。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加