0

16進数を10進数に変換しようとしていますが、int型が制限されているため、非常に大きな値(10進数で2,147,483,647を超える)では機能しません。

これが整数で動作する私のコードです

String nombreHexa = h2d.getText().toString();
            if (isHex(nombreHexa) == true) {
                int deciInt = Integer.parseInt(nombreHexa, 16);
                String newDeci = String.valueOf(deciInt);
                resulth2d.setText(newDeci);
            }

deciIntをaにしようとしましたlongが、それほど単純ではありませんでした。問題はparseInt関数に起因しているようです(parseLongも存在しません)

誰かが私がそれをどのようにすべきか知っていますか?

4

3 に答える 3

1

Whtaは間違っていLong.parseLong(String num, int radix)ますか?

String nombreHexa = h2d.getText().toString();
        if (isHex(nombreHexa) == true) {
            long deciLong = Long.parseLong(nombreHexa, 16);
            String newDeci = String.valueOf(deciLong);
            resulth2d.setText(newDeci);
        }
于 2013-03-12T11:01:24.723 に答える
1

この答えが示唆するように、使用してLong.decode(str)ください:

文字列をLongにデコードします。10進数、16進数、および8進数を受け入れます。

より大きいが必要な場合はLong.MAX_VALUEおそらくBigIntegerを使用する必要があります。

于 2013-03-12T10:59:18.750 に答える
0

parseLongも存在します。サイズの問題であればご利用いただけます。

于 2013-03-12T11:00:51.667 に答える