は、誰もがJavaの18桁の数字列をBigIntegerに変換するには?
IEでのBigIntegerに数値18桁の文字列を変換する際に、私を助けてもらえ;文字列"0x9999999999999999"
が0x9999999999999999
数値として表示されます。
は、誰もがJavaの18桁の数字列をBigIntegerに変換するには?
IEでのBigIntegerに数値18桁の文字列を変換する際に、私を助けてもらえ;文字列"0x9999999999999999"
が0x9999999999999999
数値として表示されます。
数字は16進数であると予想しますか?通常は0xと同じ意味ですか? BigIntegerのバックにテキストとして16進数をオンにするのBigInteger
BigInteger bi = new BigInteger(string);
String text = bi.toString();
にプレーンな文字列をオンにする
。
if(string.startsWith("0x")) {
BigInteger bi = new BigInteger(string.sustring(2),16);
String text = "0x" + bi.toString(16);
}
BigInteger bigInt = new BigInteger("9999999999999999", 16);
あなたはBigIntegerのコンストラクタでベースを指定することができます。
BigInteger bi = new BigInteger("9999999999999999", 16);
String s = bi.toString(16);
文字列は常に "0x" で始まり、進数の場合:
String str = "0x9999999999999999";
BigInteger number = new BigInteger(str.substring(2));
良く、それが出力するには、 "0X"
String str = "0x9999999999999999";
BigInteger number;
if (str.startsWith("0x")) {
number = new BigInteger(str.substring(2), 16);
} else {
// Error handling: throw NumberFormatException or something similar
// or try as decimal: number = new BigInteger(str);
}
でそれを起動するかどうかを確認16進数で表示するか、または16進表示に変換します。
System.out.printf("0x%x%n", number);
// or
String hex = String.format("0x%x", number);
ここに負の値に注意してください! – TheRealNeo
2番目の例でOPが出力されていると仮定した場合、下向きの投票がある理由はわかりませんが、@Carlosはこれ以外の唯一の例です。 (後で投稿しました) –
これは負の値も考慮しません – TheRealNeo
@ TheReealNeoあなたは負の16進値の例を挙げることができますか? –