【JAVAブルーブリッジカップ】基礎練習2 16進数から10進数へ

1978 ワード

リソースの制限
時間制限:1.0 sメモリ制限:512.0 MB
問題の説明
キーボードから8桁以下の正の16進数文字列を入力し、正の10進数に変換して出力します.
注:16進数の10~15は、それぞれ大文字のアルファベットA、B、C、D、E、Fで表されます.
サンプル入力
FFFF
サンプル出力
65535
JAVAの答えは次のコードです.
import java.math.BigInteger;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        BigInteger bi = null;
        String enter = null;
        enter = input.next();
        bi = new BigInteger(enter, 16);
        String show = bi.toString(10);
        System.out.println(show);
    }
}

トラブルシューティング:1.BigIntegerは非常に大きなデータ型を格納しており、タイトルには最長8ビットの文字列が与えられていますが、Integerのデータ型は最大8ビットしか格納できません.データオーバーフローを防ぐにはBigIntegerタイプが一般的です.
2.biとenterにnullを付与するのは、値を付与しないのとは異なり、biとenterにnullを付与する目的は初期化を完了することである.(つまり、ローカルオブジェクトを使用する前に必ず値を割り当てますが、いつ値を付けても構いません.したがって、メンバー変数でもローカル変数でも、宣言時に値を付けずに宣言するのはもちろん可能です.)
3.bi = new BigInteger(enter,16);この行のコードはenterという文字列を16進数に変換することを意味し、進数を持たない場合はデフォルトの10進数です.
4.ここでtoString(10);出力の数を10進数に変換するという意味で、もちろん他の進数でもいいです.TOSringの他の使い方については、後でエッセイを書いて、ここでの使い方を紹介しましょう.