multiplying/adding整数的速度是不是一个常数,不管这个数有多大?
Is the speed of multiplying/adding interger a constant, regardless of how big the number is?
3*3
更快,或者与 1000*1000
相比 CPU 周期数相同(值为 C int
)。此声明是否适用于所有其他算术运算符,包括浮点运算符?
CPU 通常在硬件中实现固定大小数字的乘法运算,无论您传入哪两个数字,电路都会 运行 通过所有位,即使它们中的大多数为零。有关如何在硬件中将两个数字相乘的示例,请参阅 https://en.m.wikipedia.org/wiki/Binary_multiplier
这意味着在 C 中将两个“int”相乘所花费的时间几乎是一个常数。
警告:您可能会发现乘以 2 的幂通常比乘法快得多。编译器可以自由地不使用乘法指令,如果它产生正确的结果,则将其替换为移位和加法。
3*3
更快,或者与 1000*1000
相比 CPU 周期数相同(值为 C int
)。此声明是否适用于所有其他算术运算符,包括浮点运算符?
CPU 通常在硬件中实现固定大小数字的乘法运算,无论您传入哪两个数字,电路都会 运行 通过所有位,即使它们中的大多数为零。有关如何在硬件中将两个数字相乘的示例,请参阅 https://en.m.wikipedia.org/wiki/Binary_multiplier
这意味着在 C 中将两个“int”相乘所花费的时间几乎是一个常数。
警告:您可能会发现乘以 2 的幂通常比乘法快得多。编译器可以自由地不使用乘法指令,如果它产生正确的结果,则将其替换为移位和加法。