Drukowanie bardzo dużych BigIntegerów

Próbuję rozwiązać następujący problem związany z BigIntegers w Javie 7 x64. Próbuję obliczyć liczbę do bardzo dużej mocy. Kod znajduje się poniżej, a następnie opis problemu.

import java.math.BigInteger;

public class main {

    public static void main(String[] args) {
        // Demo calculation; Desired calculation: BigInteger("4096").pow(800*600)
        BigInteger images = new BigInteger("2").pow(15544);

        System.out.println(
            "The number of possible 16 bpc color 800x600 images is: "
            + images.toString());        
    }
}

Mam problemy z wydrukowaniem wyniku tej operacji. Po wykonaniu tego kodu drukuje komunikat, ale nie wartośćimages.toString().

Aby wyizolować problem, zacząłem obliczać moce dwóch zamiast żądanego obliczenia wymienionego w komentarzu do tej linii. Na dwóch systemach, na których to testowałem,2^15544 jest najmniejszym obliczeniem, które uruchamia problem;2^15543 działa w porządku.

Nie jestem blisko miejsca, w którym można uderzyć w limit pamięci w systemach hostów i nie wierzę, że jestem nawet zbliżony do limitu VM (w każdym razie działa z argumentami VM-Xmx1024M -Xms1024M nie działa).

Po szturmowaniu internetu w poszukiwaniu odpowiedzi przyszedłem podejrzewać, że osiągam limitBigInteger lubString związane z maksymalnym rozmiarem tablicy (Integer.MAX_VALUE), których te typy używają do wewnętrznego przechowywania danych. Jeśli problem występujeString Myślę, że byłoby możliwe przedłużenieBigInteger i napisz metodę drukowania, która wypluwa kilka znaków naraz, aż do całegoBigInteger jest wydrukowany, ale raczej podejrzewam, że problem leży gdzie indziej.

Dziękujemy za poświęcenie czasu na przeczytanie mojego pytania.

questionAnswers(1)

yourAnswerToTheQuestion