ここから本文です

javaで大きな整数を扱える整数型について long型の範囲を超えるような大きな整数...

アバター

ID非公開さん

2015/8/2014:19:50

javaで大きな整数を扱える整数型について
long型の範囲を超えるような大きな整数の演算を正確にしたいと思っています(巨大な素数の探索など)。

しかし、long型でも扱えるのは19桁までで、20桁以上の整数が扱えませんし、double型では誤差が発生してしまいます。
質問は2つです。
1.javaで20桁を超えるような整数型を取り扱うことはできませんか。
2.現在20桁以上の整数計算はどのようにやっているのでしょうか。javaやC以外の特別なプログラムを使わないと計算できないのでしょうか。
片方のみでもいいので回答よろしくお願いします。

閲覧数:
2,286
回答数:
4
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

2015/8/2017:31:46

そういった用途のクラスは用意されています。
java.math.BigIntegerクラスです。
longなどのプリミティブほど使い方が簡単ではありませんが、大きな桁を扱う場合は必須のクラスで、割と多用します。
同様に浮動小数点を扱うjava.math.BigDecimalクラスもありますが、こちらは割り算の際の端数処理をしていないと循環小数になった際にExceptionを吐くなど、整数を扱うときには使い勝手が更に悪いです。
注意点としては初期化時にintやlongのコンストラクタを持っていないことです。
そのため、long値をBigIntegerに変換したい場合は一度文字列に直す必要があります。
例:new BigInteger(String.valueOf(long型の変数));

アバター

質問した人からのコメント

2015/8/22 04:51:34

ありがとうございます
BigIntegerでやってみようと思います
回答ありがとうございました

ベストアンサー以外の回答

1〜3件/3件中

並び替え:回答日時の
新しい順
|古い順

プロフィール画像

カテゴリマスター

原沢信道さん

2015/8/2015:01:05

Javaの場合はBigDecimalで対応します。

k03********さん

2015/8/2014:38:59

s2o3s5u7u11さん

javaで大きな整数を扱える整数型について

配列を使う。
100万桁ぐらいは簡単(メモリはたくさんある)

桁上がりなど、小学生の知識が必要。

割り算はめんどうかな?

あわせて知りたい

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる