模数行为 -1 % 3 (C++)
Modulus Behavior -1 % 3 (C++)
if (currIndex < 0) {
cout << currIndex << " % " << array.size() << endl;
currIndex = currIndex % array.size();
cout << currIndex << endl;
}
输出:
-1 % 3
0
-1 % 3 = C++ 中的 -1 为什么返回 0?
size() returns 无符号整数类型,因此此计算是通过将 -1 转换为无符号并执行无符号模来完成的。
将 size() 转换为有符号整数类型以获得正确的结果。
if (currIndex < 0) {
cout << currIndex << " % " << array.size() << endl;
currIndex = currIndex % array.size();
cout << currIndex << endl;
}
输出:
-1 % 3
0
-1 % 3 = C++ 中的 -1 为什么返回 0?
size() returns 无符号整数类型,因此此计算是通过将 -1 转换为无符号并执行无符号模来完成的。
将 size() 转换为有符号整数类型以获得正确的结果。