![](/img/trans.png)
[英]BigInteger(String) and BigInteger(byte[]) are not equal
[英]BigInteger to string
我有一個很大的整數(大約200000位數)。 我需要在控制台上打印此值。
System.out.println(myBigInt);
此操作(打印到控制台以及從Biginteger
隱式轉換為String
)需要很長時間。 我有個主意 將BigInteger轉換為byteArray,然后將此byteArray轉換為字符串。 以下代碼將字節數組轉換為String
:
public static String bytesToStringUTFCustom(byte[] bytes) {
char[] buffer = new char[bytes.length >> 1];
for(int i = 0; i < buffer.length; i++) {
int bpos = i << 1;
char c = (char)(((bytes[bpos]&0x00FF)<<8) + (bytes[bpos+1]&0x00FF));
buffer[i] = c;
}
return new String(buffer);
}
問題是BigInteger toByteArray()
方法BigInteger toByteArray()
返回一個字節數組,其中包含此BigInteger
的二進制補碼表示形式。 我如何覆蓋這種表示形式的字節bytearray
字符串?
要打印它,只需使用:
System.out.println(myBigInt.toString());
要么
System.out.println(myBigInt);
轉換本身只需要很少的時間。 將您的號碼打印到控制台需要花費時間。 同樣,如果要轉換為字節數組然后轉換為字符串,將花費更長的時間。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.