黑马程序员技术交流社区

标题: C语言问题 [打印本页]

作者: 无色无味    时间: 2016-3-15 18:53
标题: C语言问题
求余运算符m%n,为什么结果的正负取决于m?
作者: 冷傲阳    时间: 2016-3-15 21:20
何必这么较真呢,只要记住跟m有关系就好了,总不要搞清楚1加1为什么等于2吧
作者: 这个冬天不太冷0    时间: 2016-3-15 23:34
刚好用到 收藏了  谢谢分享
作者: 无色无味    时间: 2016-3-16 08:55
冷傲阳 发表于 2016-3-15 21:20
何必这么较真呢,只要记住跟m有关系就好了,总不要搞清楚1加1为什么等于2吧 ...

就是想看看有没有大牛,能回答上来
作者: 地球人    时间: 2016-3-16 09:11
如果 % 两边的操作数都为正数,则结果为正数或零;如果 % 两边的操作数都是负数,则结果为负数或零。C99 以前,并没有规定如果操作数中有一方为负数,模除的结果会是什么。C99 规定,如果 % 左边的操作数是正数,则模除的结果为正数或零;如果 % 左边的操作数是负数,则模除的结果为负数或零。例如:

          15 % 2       // 余 1
          15 % -2      // 余 1
          -15 % 2      // 余 -1
          -15 % -2     // 余 -1

标准规定,如果 a 和 b 都是整数,则 a % b 可以用公式 a - (a / b) * b 算出。例如:

          -15 % 2 == -15 - (-15 / 2) * 2 == -15 - (-7) * 2 == -1
以上为网上查找,共同学习




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2