1. ホーム
  2. java

[解決済み] Java による int と hex の相互変換

2023-06-16 23:33:22

質問

次のようなコードを持っています...

int Val=-32768;
String Hex=Integer.toHexString(Val);

これは ffff8000

int FirstAttempt=Integer.parseInt(Hex,16); // Error "Invalid Int"
int SecondAttempt=Integer.decode("0x"+Hex);  // Error "Invalid Int"

つまり、最初は値-32768を16進文字列fff8000に変換していますが、その後16進文字列をIntegerに戻すことができません。

.Net は期待通りに動作しますし returns -32768 .

これを自分で変換する小さなメソッドを書けることは知っていますが、何か見落としているのか、それとも本当にバグなのか、ちょっと気になるところです。

どのように解決するのですか?

負の数なので、オーバーフローします。

これを試せばうまくいくでしょう。

int n = (int) Long.parseLong("ffff8000", 16);