无论数字有多大,乘法/加码的速度都是常数吗?



3*3更快,或者占用与1000*1000相同的CPU周期数(值为Cint(。此声明是否适用于所有其他算术运算符,包括浮点运算符?

CPU通常在硬件中实现固定大小数字的乘法,无论您传入哪两个数字,电路都会贯穿所有位,即使其中大多数是零。有关如何在硬件中将两个数字相乘的示例,请参阅 https://en.m.wikipedia.org/wiki/Binary_multiplier

这意味着在 C 中乘以两个"int"所需的时间几乎是一个常数。

警告:您可能会发现乘以 2 的幂比一般的乘法快得多。编译器可以自由地不使用乘法指令,并用位移替换它,如果它产生正确的结果,则添加。

最新更新