• ベストアンサー

C言語で128bitの2進数のビット演算をしたいのですが、intのように1つの数として定義できますか?

恐縮ですが、授業でかるく習った程度の知識しかありませんので、よろしかったら、その辺のことを勉強するのに適したサイトをお知りでしたら、そちらもお教えいただければと思います。お願いします。

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

  • ベストアンサー
  • jacta
  • ベストアンサー率26% (845/3158)
回答No.2

> C言語で128bitの2進数のビット演算をしたいのですが、intのように1つの数として定義できますか? 処理系によるとしかいえません。 処理系によっては、int128_t型とか__int128_t型が使える場合がありあすので、ご希望通りのことが可能です。 > その辺のことを勉強するのに適したサイトをお知りでしたら、そちらもお教えいただければと思います。 とりあえず、JISCのサイトでX3010を検索して読んでみてください。

参考URL:
http://www.jisc.go.jp/
kenrobo
質問者

お礼

回答ありがとうございます。調べてみます。

その他の回答 (3)

  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.4

★ダウンロードできます。 ・http://www.mit.msn.to/software/tiny_mp/tiny_mp.html→『tiny_mp - 小さな多倍長演算ライブラリ』  参考にして下さい。

参考URL:
http://www.mit.msn.to/software/tiny_mp/tiny_mp.html
kenrobo
質問者

お礼

回答ありがとうございます。多倍長演算について調べているところでしたので助かりました。紹介して頂いたライブラリを理解して使えるように勉強します。

  • Tasuke22
  • ベストアンサー率33% (1799/5383)
回答No.3

演算速度を問わないのであれば、自分で演算関数を 組む手がありますね。 unsigned char[16]をインターフェイスにしたら如何 でしょうか。 #define int128 unsigned char[16] というのは駄目でしょうか。

kenrobo
質問者

お礼

回答ありがとうございます。長い数の場合は配列などでいくつかに分けて格納するのが簡単みたいですね。大量の計算をしないといけないので、手間と計算時間を考えて試してみます。

  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.1
kenrobo
質問者

お礼

回答ありがとございます。勉強不足のためか128bit対応の型があるかはよくわかりませんでしたが、多倍長演算などヒントになりそうなことが書いてありましたので、並行して調べたいと思います。

関連するQ&A

専門家に質問してみよう