- ベストアンサー
40桁の
大学の友達から40桁の四則演算をしたいのだが、32bitまでしか値が使用できないので困っているといわれました。「配列を使ったらできるかな?」と言っていますが出来るのでしょうか? 出来るという人がいたら教えてください。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
配列を使ってもできます 40桁の計算を行うのには32bits(long?)の変数を使うのであれば (簡単に扱うために)4桁ごとに分けるため10個程度必要になります。 つまり配列の大きさは10です。 これはもっと工夫すれば減らすこともできますが計算が面倒になります。 加算、減算はforなどを用いれば簡単にできると思います。 乗算はちょっと面倒になります。 除算はかなり面倒になります。 小学校のときにやった繰りあがりなどをそのまま考えれば できます。
その他の回答 (6)
- uyama33
- ベストアンサー率30% (137/450)
「RSA」橋本晋之介 著 ソフトバンク の55ペーじが 参考になると思います。
(1)有効数字40桁で計算がしたい。 (2)精度はそれほど必要ないが,大きな数値(40桁)の計算がしたい。 のどちらでしょうか? (1)なら多倍長演算をするしかないと思いますが, (2)なら単に double 型でも使えば済みます。
- neKo_deux
- ベストアンサー率44% (5541/12319)
40桁の条件(浮動小数、整数、符号)次第では面倒ですが、可能です。 四則演算ならば、要は筆算でやる計算手順をPCにやらせれば良いです。割り算はちと面倒ですが。
- lupinletrois
- ベストアンサー率76% (702/917)
一般に「多倍長演算」といいます。検索してみてください。 一例を参考リンクしますが、目的によっていろいろありますから、 適切かどうかはわかりません。
- HAL007
- ベストアンサー率29% (1751/5869)
もとの問題は32ビット空間で四則演算をするにはと言う問題だと思います。 小さなメモ紙で筆算をする場合どうしますか? 下位20桁と上位20桁で計算して書き写す際に下位の解の内上位桁に 影響する数で上位桁を計算して纏めた答えを書き出す事をしませんでしたか? 32ビットだと有効桁数は9桁しかありませんので5分割にして行うことを 考えるのでは?
- tds2a
- ベストアンサー率16% (151/922)
エクセルでは27桁までとあったようです。
補足
友達は配列を使ってみたそうなのですが、うまく出来なかったといいます。 配列を使っても出来るのでしょうか?