The GNU MP Bignum Library
オイラー見てたら、多倍長演算ライブラリ発見。
#include <gmp.h> int main(void) { mpz_t a, b, c; mpz_init_set_str(a, "1234567890123456789012345678901234567890", 0); mpz_init_set_str(b, "1234567890123456789012345678901234567890", 0); mpz_init(c); mpz_mul(c, a, b); gmp_printf("%Zd\n", c); mpz_clear(a); mpz_clear(b); mpz_clear(c); return 0; }
ちょっと面倒だけど、コンパイルは簡単。
% gcc mpz.c -lgmp % ./a.out 1524157875323883675049535156256668194500533455762536198787501905199875019052100
おぉぉぉぉぉぉぉぉスゲ〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
気に入った。
海外では結構使われてるみたいだけど、日本語の情報が殆ど無いな・・・。
マニュアルを見ると、mpz_が整数、mpf_が浮動小数、mpq_が複素数。gmp_がユーティリティ系。ま、こんだけ解れば充分か。