ここに初投稿。他の変換を含め、16 進数から 10 進数に変換する割り当てがありますが、これには困惑しています...
したがって、変換する必要がある 16 進値は 12345678、2A3DF8A7、00FF00FF です。00FF00FF は正常に動作します。問題を引き起こしているのは数値です。
数字に 16^n を掛けなければならないことはわかっていますが、正しいと思っていても、何らかの理由で値が高すぎます。機能していないため、明らかにそうではありません。助けていただければ幸いです。
私のコードは過去 1 時間にわたって変更されましたが、問題は最後の「else」です。
public void toDec()
{
dec = 0;
for (int j = 0, i = 7; j < hex.length(); j++){
if (hex.charAt(j) == 'A') {
dec += (10 * (int)Math.pow(16, i));
}
else if (hex.charAt(j) == 'B') {
dec += (11 * (int)Math.pow(16, i));
}
else if (hex.charAt(j) == 'C') {
dec += (12 * (int)Math.pow(16, i));
}
else if (hex.charAt(j) == 'D') {
dec += (13 * (int)Math.pow(16, i));
}
else if (hex.charAt(j) == 'E') {
dec += (14 * (int)Math.pow(16, i));
}
else if (hex.charAt(j) == 'F') {
dec += (15 * (int)Math.pow(16, i));
}
else if (hex.charAt(j) == '0') {
dec = dec;
}
else {
dec += ((int)hex.charAt(j)) * ((int)Math.pow(16, i));
}
i--;
}
}