您当前的位置: 首页 > 

liaowenxiong

暂无认证

  • 2浏览

    0关注

    1171博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

取模和求余运算

liaowenxiong 发布时间:2021-06-16 16:28:05 ,浏览量:2

文章目录
  • 背景
  • 探究
  • 总结

被除数 dividend 用 a 表示; 除数 divisor 用 b 表示; 商 quotient 用 q 表示; 余 remainder 用 rem 表示; 模 modulo 用 mod 表示。

背景

最近在一道 Java 习题中,看到这样的一道题:

What is the output when this statement executed:
System.out.printf(-7 % 3);

正整数的取余运算大家都很熟悉,但是对于负数、实数的取余运算,确实给人很新鲜的感觉。于是我对此进行了一些探索。我发现,这里面还是颇有一点可以探索的东西的。

探究

首先,看看自然数的取模运算(定义1):

如果 a 和 b 是两个自然数,b 非零,可以证明存在两个整数 q 和 r,满足 a = q*b + r0 ≤ r < b。其中,q 被称为商,r 被称为余数。

我们计算下 (-7) % 3,这个表达式正常情况下是求余数,计算过程如下图所示: 在这里插入图片描述 按自然数的除法运算规则,得到商值:-3,余数:2,且完全满足上述两个关系表达式:-7 = (-3)*3 + 20 ≤ 2 < 3

那么,各种编程语言和计算器是否是按照这样的规则计算呢?下面列举了几个程序运算的结果:

程序语句输出C++(G++ 编译)cout
关注
打赏
1661566967
查看更多评论
立即登录/注册

微信扫码登录

0.1705s