データ型を超える数値の計算 – プログラミング – Home

データ型を超える数値の計算
 
通知
すべてクリア

データ型を超える数値の計算


iso
 iso
(@iso)
ゲスト
結合: 23年前
投稿: 1
Topic starter  

はじめまして、isoです。

<質問>
かなり大きな数を計算しようとしているのですが、
データ型__int64を使用しても、
9,223,372,036,854,775,807
までしか表現できません。
これ以上の数値を表現する方法はあるのでしょうか?

どんな方法でも構いませんので、
どうぞ宜しくお願い致します。


引用解決済
トピックタグ
いもちぃ
 いもちぃ
(@いもちぃ)
ゲスト
結合: 23年前
投稿: 70
 

そういう場合は、構造体等を使って自分でオペレーターを作ります。
プログラミングの基礎を真剣に書いてくれてる本を探せば、
詳しいやりかたも書いてあります。

これをヒントに、まずはどのへんがわからないか絞りましょう。
・オペレーターを作るってわかりますか?
・構造体はわかりますか?

また、開発環境によって使える方法と使えない方法があります。
特にCかC++か。
とにかく、使用上の注意は必ず読みましょうよ。


返信引用
ワルツ
 ワルツ
(@ワルツ)
ゲスト
結合: 23年前
投稿: 21
 

本の正式な名前は忘れましたが、「C言語によるアルゴリズム辞典」だったかな?
たしか、それに多桁計算のサンプルがありったとおもいます。

構造体か配列に、4桁ずつ(別に何桁でもいいでしょうけど)わけて
もつというようなことをやっていました。
(もしかしたら、char配列だったかな?)
ということで、自前で作成するしかないでしょう。

正確に覚えていないので、この程度しかいえませんが・・・


返信引用
PATIO
(@patio)
Famed Member
結合: 4年前
投稿: 2660
 

int64でもおさまらない計算っていったいどんな計算なんでしょう。
天文学の計算でもするのかなぁ。
皆さんが言われているように自前でやるしかないでしょう。
しかし、面倒なんだよなぁ。
和と差はともかく積と商が。

ただ、そんな桁数になるのであれば、全桁の精度が必要なんでしょうか?
下桁の方は切り捨てて、上の桁だけで計算して、表示上はゼロを下に
決まっただけつけるとかいうのもありなきもしますけれど。


返信引用
kazuma
 kazuma
(@kazuma)
ゲスト
結合: 24年前
投稿: 217
 

精度を犠牲にしてもよいのならdouble型を使えばかなり大きな数まで扱えます。

きっちりやらないといけないのなら、
キーワード「多倍長演算」で検索すると解説やらソースやらがいろいろ見つかります。


返信引用
kazuma
 kazuma
(@kazuma)
ゲスト
結合: 24年前
投稿: 217
 

ついでに、「C言語による最新アルゴリズム事典」のソースは
著者の奥村先生のページからダウンロードできます。
http://www.matsusaka-u.ac.jp/~okumura/algo/


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました