プロが教えるわが家の防犯対策術!

C/C++で100桁の10進を演算したいのですが
intが32ビットなので苦労しています
何か方法があれば教えてください

A 回答 (5件)

C ではありませんが UBASIC がお勧めです。


2700桁までOKで、フリーソフトです。

参考URL:http://www.rkmath.rikkyo.ac.jp/~kida/ubasic.htm

この回答への補足

大部分をC++で組んだので今の用途にはつかえませんが
将来の参考にさせていただきます
ありがとうございました

補足日時:2003/01/06 14:56
    • good
    • 0

半日もあれば整数の多倍長四則演算ライブラリを作れると思うので、時間があるなら練習のために悩んでみるという手もあります。



どうしても手間をかけたくないなら、あるいは十分最適化された高速なライブラリが必要なら、GNU MPをおすすめします。GNU MPで検索すればたくさんヒットすると思いますので、具体的な入手方法や使い方は省略します。Windowsで動かしたい場合は、ちょっと手間が必要かもしれません。参考URLをみてください。

参考URL:http://nhiro4.infoseek.livedoor.com/gmp/

この回答への補足

無償ボーランドC++5.5との移植性はどうでしょうか?
分かっていれば教えてください

よろしくお願いします

補足日時:2003/01/06 14:59
    • good
    • 0

 __int64 型の変数はどうでしょうか?



 __int64 a, b;
 a = 1;
 b = 2;
 a += b +2;

 とまあ、普通の int と同じように使えますが、サイズが64ビット(8バイト)あります。

この回答への補足

64ビットだと符号なしで18446744073709551616-1まで20桁ですね
今の用途には役不足ですが他に使えそうです
そこで__int64 を符号なしで使える方法があれば教えてください

よろしくお願いします

補足日時:2003/01/06 14:50
    • good
    • 0

> そこで__int64 を符号なしで使える方法があれば教えてください



unsigned __int64 a, b; ではダメなのでしょうか?
# やってみればいいのに...
    • good
    • 0
この回答へのお礼

就職しただけでいいとは思わなかったので質問してみました
下記プログラムで確かにうまく行きました
どうもありがとうございました

#include <iostream>
using namespace std;

void main(void)
{
unsigned __int64 a;
a=0;
a--;
cout<<a<<endl;
}

18446744073709551615

お礼日時:2003/01/06 15:51

> 修飾しただけでいいとは思わなかったので質問してみました



だから...'質問してみる'前に'やってみる'ことをオススメします。

'やってみてダメだったら質問'でも遅くないでしょ?
    • good
    • 0
この回答へのお礼

おっしゃる通りです

お礼日時:2003/01/06 18:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!