BigInt
を使用して符号付き数値を解析しようとしています。ここに私の試みBigIntを使用して16進数から符号付き数値を解析します。
scala> -1.toHexString
res7: String = ffffffff
scala> val bigInt = BigInt(res7,16)
bigInt: scala.math.BigInt = 4294967295
されている簡単BigInt
を使用して進から署名数を解析する方法はありますか?
BigInt
を使用して符号付き数値を解析しようとしています。ここに私の試みBigIntを使用して16進数から符号付き数値を解析します。
scala> -1.toHexString
res7: String = ffffffff
scala> val bigInt = BigInt(res7,16)
bigInt: scala.math.BigInt = 4294967295
されている簡単BigInt
を使用して進から署名数を解析する方法はありますか?
あなたの番号が一方的にどれだけ長くあるかを伝える必要があります。それがなければ、単に「FFFFFFFF」を言うことはあいまいです:Int
として、それは-1ですが、限り、それは大きな正の値である:あなたの16進数文字列が整数またはロング—としての生活を始めた場合
bigInt.toLong
res48: Long = 4294967295
bigInt.toInt
res49: Int = -1
BigInt —に変換する前に
java.lang.Integer.parseUnsignedInt("ffffffff",16) // Results in -1
又は
java.lang.Long.parseUnsignedLong("ffffffffffffffff",16) // Results in -1
どのSIのそれはしかし非常に長い数であれば、32個の以上のビットを符号なし数としてそれを解析gned number? –
AFAIKの標準的な16進表現はありませんが、この 'BigInt(" - deadba0babbadc0ffee "、16)'のようなものが動作します。 – Dima
例えば、 '-2^64'を16進数で表現したいとします。これは' ff0000000000000000'のようなものです。これを標準ライブラリで行う方法はありませんか? BigInt - > hex - > BigIntから対称エンコーディングを作成しようとしています –