2017-08-26 4 views
-2

特別な理由がなくても、何ギガバイトものメモリに格納できる最大の数字を知りたかったのです。だから私はそれを計算するために任意の精密ライブラリを使用したが、文字列はint.max文字しか格納できないので、問題はこの数値をファイルに出力しようとしている。Java:ファイルに非常に大きな数字(10億桁など)を出力するにはどうすればよいですか?

Apint a = new Apint(2); 
    a = ApintMath.pow(a, 8589934591l); 
    a = a.subtract(new Apint(1)); 
    File file = new File("theNumber.txt"); 
    PrintWriter pls = new PrintWriter(file); 
    a.writeTo(pls, true); 
    pls.close(); 
+2

ファイルに 'X'をバイト単位で可能な最大数を保存したい場合は、単に 'X' '0xFF'バイトを書き込みます。 – tkausl

+0

@tkausl私は、ライブラリが任意の精度をサポートできるように、番号の長さのような数に関する追加情報を記録するために、任意の精度ライブラリがいくつかのバイトを使用する必要があるため、少し大きすぎる数を選択すると思います。 –

+0

@DPEここではうまくいかないのですか? – nullpointer

答えて

-1

(未テスト方法、動作しない可能性があり)

右端の数字を選択する10のパワーを持つMODオペレータ%を使用します。これらの数字を1行のファイルに書き込みます。それから10の同じ累乗で割る。あなたの数字はN桁短い。各桁のグループを別々の行にファイルに書き込むことを繰り返します。

Linuxの場合は、javaまたはtacのいずれかの行を逆の順序で別のファイルにコピーします。

私はあなたがそれらにテキストの非常に長いラインを上ロードしようが、テキストの行数を扱うことができる場合が多いため、プログラムがハングアップすることを阻止するだろうけれどもあなたは、一緒に各行に参加できます。

+0

[回答]をお読みください。これはディスカッションフォーラムではないので、回答の推測はここでは眉をひそめます。答えがわからない場合は、コードを書いてテストし、OPの質問に答えることを確認するまで投稿しないでください。 –

+0

わかりました。私は怠惰に謝ります –

+0

しかし、この方法はうまくいきます – DPE

関連する問題