我想实现密码算法。所以我需要一个合适的数据类型来处理有很多数字的整数。
许多最近的语言,例如 Java、Python 和 Ruby 都提供了执行此操作的 native 方法。但是,我正在用 C 语言编程,我想知道在那里实现基本操作的最佳方式和最简单方式是什么。
我想在没有任何外部库的情况下编写它。我考虑了两种选择:
- 使用 char 数组(类似于字符串,这对加密/解密 key 很有用)
- 使用位数组(我不知道该怎么做,但我认为这将取决于编译器)
你会怎么做?
最佳答案
(对我而言)显而易见的选择是 GMP其主要开发者 Torbjörn Granlund 是 2000 年赢得西蒙辛格“密码挑战赛”的瑞典五人队的成员。
根据该网站,该代码可用于在 3.2 GHz 的 AMD Phenom II 上在 1957 秒内计算 1000000000 位圆周率。
代码从 1991 年开始开发。
关于c - 如何在 C 中处理大整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8709602/