3 回答
TA贡献1851条经验 获得超4个赞
%在C中是指“mod”还是“rem”?
%
.的结果 /
算子是带任意小数部分的代数商.(这通常被称为“向零截断”)。C11dr§6.5.5 6
的操作数 %
运算符应具有整数类型。C11dr§6.5.5 2
的结果 /
运算符是从第一个操作数除以第二个操作数的商; %
运算符是 余数..C11dr§6.5.5 5
“MOD”和“余数”有什么区别?
a%b
a
// a % b 7 % 3 --> 1 7 % -3 --> 1 -7 % 3 --> -1 -7 % -3 --> -1
7 modulo 3 --> 1 7 modulo -3 --> 1 -7 modulo 3 --> 2 -7 modulo -3 --> 2
int modulo_Euclidean(int a, int b) { int m = a % b; if (m < 0) { // m += (b < 0) ? -b : b; // avoid this form: it is UB when b == INT_MIN m = (b < 0) ? m - b : m + b; } return m;}
double fmod(double x, double y)
这个 fmod
的浮点余数。 x/y
..C11dr§7.12.10.1 2
fmod( 7, 3) --> 1.0 fmod( 7, -3) --> 1.0 fmod(-7, 3) --> -1.0 fmod(-7, -3) --> -1.0
double modf(double value, double *iptr)
1%
/
%
modulo_Euclidean()
TA贡献1797条经验 获得超6个赞
7 % 3 = 1 // dividend % divisor = remainder
- 3 回答
- 0 关注
- 628 浏览
添加回答
举报