簡體   English   中英

BigInteger轉換為字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM