2010-12-11 11 views

答えて

1

数字は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); 
} 
+0

2番目の例でOPが出力されていると仮定した場合、下向きの投票がある理由はわかりませんが、@Carlosはこれ以外の唯一の例です。 (後で投稿しました) –

+0

これは負の値も考慮しません – TheRealNeo

+0

@ TheReealNeoあなたは負の16進値の例を挙げることができますか? –

0
BigInteger bigInt = new BigInteger("9999999999999999", 16);  
12

あなたはBigIntegerのコンストラクタでベースを指定することができます。

BigInteger bi = new BigInteger("9999999999999999", 16); 
String s = bi.toString(16); 
2

文字列は常に "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); 
+0

ここに負の値に注意してください! – TheRealNeo

関連する問題