商余运算除必须遵循除数不能为0,还需要C/C++语言遵守以下规定: C++ 语言早期版本允许结果为负值的商向上或向下取整,C++11新标准则规定商一律向0取整,即直接截断小数部分。早期版本允许m%的符号匹配n的符号,且商向负无穷一侧取整。新标准则禁用了这一规则,除了-m导致溢出的特殊情况,其他时候(-m)/ n 和 m / ( -n)都等于 -(m/n), m % (-n)等于m%n,(-m)%n 等于 -(m % n)。