19

BigInteger の数値があり、それを 16 進数に変換する必要があります。私は次のことを試しました:

    String dec = null;
    System.out.println("Enter the value in Dec: ");
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    dec = br.readLine();  
    BigInteger toHex=new BigInteger(dec,16);
    String s=toHex.toString(16);
    System.out.println("The value in Hex is: "+ s);

しかし、これでは変換後に正しい値が得られません。誰でも助けてくれますか。

4

4 に答える 4

17

変更する必要があります

BigInteger toHex=new BigInteger(dec,16);

BigInteger toHex=new BigInteger(dec,10);
                                     ^

現在、ユーザーにdec値を要求し、入力を16進値として解釈します。(そのため、出力は入力と同じです。)

于 2012-08-11T22:24:56.907 に答える
5
String hexValue = "FFF";
    System.out.println("HexaDecimal Value :"+hexValue);
    BigInteger bigint = new BigInteger(hexValue ,16);
    System.out.println("Big Int Value :"+bigint);
    BigInteger s = new BigInteger("4");
    bigint = bigint.add(s);
    System.out.println("After Addition :"+bigint);
    String hexNewValue = bigint.toString(16);
    System.out.println("HexaDecimal Value after Addition :"+hexNewValue);
于 2013-07-19T11:08:59.390 に答える
4

私は問題を見ていると思います:

BigInteger toHex=new BigInteger(dec,16);

入力した数値を16進数を使用して整数に変換して10います。ここで使用してみてください。

于 2012-08-11T22:25:04.400 に答える
2

使用する

 BigInteger toHex=new BigInteger(dec,10);
于 2012-08-11T22:25:56.863 に答える