Imprimindo BigIntegers muito grandes

Estou tentando descobrir o seguinte problema relacionado ao BigIntegers no Java 7 x64. Eu estou tentando calcular um número para um poder extremamente alto. Código está abaixo, seguido por uma descrição do problema.

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());        
    }
}

Estou encontrando problemas para imprimir o resultado dessa operação. Quando este código é executado, imprime a mensagem, mas não o valor deimages.toString().

Para isolar o problema, comecei a calcular os poderes de dois, em vez do cálculo desejado, listados no comentário dessa linha. Nos dois sistemas em que testei isso,2^15544 é o menor cálculo que desencadeia o problema;2^15543 funciona bem.

Não estou perto de atingir o limite de memória nos sistemas host e não acredito que esteja perto do limite da VM (de qualquer forma, executando com os argumentos da VM-Xmx1024M -Xms1024M não tem efeito).

Depois de bisbilhotar a internet procurando por respostas, cheguei a suspeitar que estou atingindo um limiteBigInteger ouString relacionado ao tamanho máximo de um array (Integer.MAX_VALUE) que esses tipos usam para armazenamento interno de dados. Se o problema está emString Eu acho que seria possível estenderBigInteger e escrever um método de impressão que expulse alguns caracteres de cada vez até que todo oBigInteger é impresso, mas eu suspeito que o problema esteja em outro lugar.

Obrigado por tomar o tempo para ler a minha pergunta.

questionAnswers(1)

yourAnswerToTheQuestion