【アプリ版】サポートOS変更のお知らせ

よく、暗号とかに桁数が長くて驚きますがC言語のunsigned long long型でも20桁くらいです。C言語でどのようにして桁数を伸ばしているのでしょうか?

gooドクター

A 回答 (4件)

「1個の変数」で足りなければ「たくさんの変数」を使えばいい.



(日本の) 人間だって 0~9 の 10個の数字だけで, 「長~い数値」を表してるでしょ?
    • good
    • 0
この回答へのお礼

なるほど、たくさん変数を使えばいいのですね。ありがとうございます。

お礼日時:2021/07/17 20:11

java ならbigdecimalというものもありますが、cにはアリません。

そこで、いろいろ工夫するわけです。なので、工夫した結果は正しいとは限りません。なのでいろいろ検証するんですが、その検証方法も、工夫しないといけません。検証方法か間違っていると、間違っているものが正しいと判定されたり、逆の場合もありますから。円周率なんてものも計算するのが結構大変だそうです、何しろ無限ですから。
    • good
    • 0
この回答へのお礼

そうですね、円周率は無限にありますから検証するのも大変です。長文ありがとうございました。

お礼日時:2021/07/19 16:46

配列を使って大きな整数を扱う演算を行うことを多倍長整数演算といい、演算を効率的に行うアルゴリズムも色々とあります。


# 参考: https://qiita.com/square1001/items/1aa12e04934b6 …

ただCで標準的なライブラリは知りませんね。自前実装が多いかもしれません。
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2021/07/19 16:42

念のため補足しておくと, 本当に


a とか b とかたくさんの変数を使う
わけじゃないからね.

配列 (相当) を使ってるだけで.
    • good
    • 0
この回答へのお礼

補足ありがとうございます。

お礼日時:2021/07/19 16:40

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

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

人気Q&Aランキング