• ベストアンサー

40桁の

大学の友達から40桁の四則演算をしたいのだが、32bitまでしか値が使用できないので困っているといわれました。「配列を使ったらできるかな?」と言っていますが出来るのでしょうか? 出来るという人がいたら教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.7

配列を使ってもできます 40桁の計算を行うのには32bits(long?)の変数を使うのであれば (簡単に扱うために)4桁ごとに分けるため10個程度必要になります。 つまり配列の大きさは10です。 これはもっと工夫すれば減らすこともできますが計算が面倒になります。 加算、減算はforなどを用いれば簡単にできると思います。 乗算はちょっと面倒になります。 除算はかなり面倒になります。 小学校のときにやった繰りあがりなどをそのまま考えれば できます。

その他の回答 (6)

  • uyama33
  • ベストアンサー率30% (137/450)
回答No.6

「RSA」橋本晋之介 著 ソフトバンク の55ペーじが 参考になると思います。

noname#5537
noname#5537
回答No.5

(1)有効数字40桁で計算がしたい。 (2)精度はそれほど必要ないが,大きな数値(40桁)の計算がしたい。 のどちらでしょうか? (1)なら多倍長演算をするしかないと思いますが, (2)なら単に double 型でも使えば済みます。

007xyz
質問者

補足

友達は配列を使ってみたそうなのですが、うまく出来なかったといいます。 配列を使っても出来るのでしょうか?

  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.4

40桁の条件(浮動小数、整数、符号)次第では面倒ですが、可能です。 四則演算ならば、要は筆算でやる計算手順をPCにやらせれば良いです。割り算はちと面倒ですが。

回答No.3

一般に「多倍長演算」といいます。検索してみてください。 一例を参考リンクしますが、目的によっていろいろありますから、 適切かどうかはわかりません。

参考URL:
http://www5.airnet.ne.jp/tomy/cpro/longint.htm
  • HAL007
  • ベストアンサー率29% (1751/5869)
回答No.2

もとの問題は32ビット空間で四則演算をするにはと言う問題だと思います。 小さなメモ紙で筆算をする場合どうしますか? 下位20桁と上位20桁で計算して書き写す際に下位の解の内上位桁に 影響する数で上位桁を計算して纏めた答えを書き出す事をしませんでしたか? 32ビットだと有効桁数は9桁しかありませんので5分割にして行うことを 考えるのでは?

  • tds2a
  • ベストアンサー率16% (151/922)
回答No.1

エクセルでは27桁までとあったようです。