【发布时间】:2025-12-03 14:05:01
【问题描述】:
大家!我一直在尝试为 C++ 中的 RSA 实现创建自己的大整数类(仅用于练习目的)。我认为在性能方面可以很好地实现这种东西的唯一方法是使用 C++ 的内置按位运算 (&|^),这意味着实现自定义全加器进行加法、二进制乘法器进行乘法等。
我感兴趣的事情可以表述如下:使用按位 C++ 操作进行数字算术(如全加器、乘法器)的硬件电路的定制仿真器在性能方面会更慢。换句话说,如果我制作自己的 64 位大小的无符号整数类,并使其在执行加法、乘法、除法所需的按位运算数量方面“理想”,它能否具有与内置的 unsigned long long?
是否可以使用任何编程语言实现如此快的速度,或者您永远无法比 CPU 的内在指令集更快地执行任何操作?
请注意,我对有关 RSA 实现的答案不感兴趣,而只对本机和手工算术的性能比较感兴趣。
提前谢谢!
【问题讨论】:
-
完全取决于 CPU 的指令集,如果它有流操作。我认为你最好看看那些。例如,AVX-512 一次可以处理 512 位,这将超出正常操作。另请注意,内存/缓存性能可能会成为瓶颈。总而言之,我认为您无法超越 CPU 指令集。您的代码将始终更通用,因为它必须可编译用于超过 1 种类型的 CPU
标签: c++ binary bit-manipulation cpu computer-science