整数除法余数的 C++ 确定性

标签 c++ integer-division math.h

我有一个关于在 C/C++ 中执行余数除法的问题。据说,在两个整数相除的运算中,如果结果不能用整数表示,则将其非整数部分以小数形式去掉。 例如,int a=17; a/=3;/伪 float a,得到的值是 5.6666../所以结果是 5。这是由于 point(6666. .),这实际上是余数(2)除以3。 这在我的计算机上有效,但它绝对可靠吗?还是我必须用 float 声明,然后将其强制转换为 int 以确保安全?性能和安全性哪个更好? 提前致谢。

最佳答案

C++ 中整数的算术运算不依赖于计算机。
如果 ab 是整数,a/b 将始终给出除法的整数商和 a % b code> 总是会给出整数除法的余数。

性能方面,可以看一下this StackOverflow question ,但它似乎依赖于架构。

关于整数除法余数的 C++ 确定性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17639147/

相关文章:

c++ - 在 glm::rotate 中使用 "custom"sin 和 cos

c++ - 查找 2 个 3D 点之间的距离

c++ - 使用智能指针作为全局变量

c++ - 将整数乘以适当分数的快速方法,无需 float 或溢出

c++ - 提取点 vector 内的区域

c - 32 位有符号整数除法在 PowerPC 上给出 0x7fffffff 作为商

java - 调用方法有问题

c - 将变量传递给 fmax

c++ - 如何重新定义 glm 矩阵变量或删除其变换?

c++ - 视觉 C++ 2010 SP1