2016-06-20 2 views

答えて

0

あなたの番号が一方的にどれだけ長くあるかを伝える必要があります。それがなければ、単に「FFFFFFFF」を言うことはあいまいです:Intとして、それは-1ですが、限り、それは大きな正の値である:あなたの16進数文字列が整数またはロング—としての生活を始めた場合

bigInt.toLong 
res48: Long = 4294967295 

bigInt.toInt 
res49: Int = -1 
+0

どのSIのそれはしかし非常に長い数であれば、32個の以上のビットを符号なし数としてそれを解析gned number? –

+0

AFAIKの標準的な16進表現はありませんが、この 'BigInt(" - deadba0babbadc0ffee "、16)'のようなものが動作します。 – Dima

+0

例えば、 '-2^64'を16進数で表現したいとします。これは' ff0000000000000000'のようなものです。これを標準ライブラリで行う方法はありませんか? BigInt - > hex - > BigIntから対称エンコーディングを作成しようとしています –

1

BigInt —に変換する前に

java.lang.Integer.parseUnsignedInt("ffffffff",16) // Results in -1 

又は

java.lang.Long.parseUnsignedLong("ffffffffffffffff",16) // Results in -1 
関連する問題