C语言中有关取模和取余的问题
创始人
2024-06-02 13:53:08
0

余数在数学中有重要的作用,在编程中也同样重要。不过,在不同编程语言中,有关余数的运算问题往往是不相同的。

对于正数的运算,相信有小学基础的人都能理解,没有什么问题:

  • 14 / 6 = 2 ··· 2,因为 14 = 2x6+2

但对于负数的运算,可能会出现以下几种情况:

  • -14 / 6 = -2 ··· -2,因为 -14 = (-2)x6+(-2)
  • -14 / 6 = -3 ··· 4,因为 -14 = (-3)x6+4
  • -14 / -6 = 2 ··· -2,因为 -14 = 2x(-6)+(-2)
  • -14 / -6 = 3 ··· 4,因为 -14 = 3x(-6)+4

这说明 -14 除以 6 和 -14 除以 -6 都有两个余数,这是怎么回事呢?

在数学中,余数的定义如下:

如果 a 和 d 是两个自然数,d 不等于 0,可以证明存在两个唯一的整数 q 和 r,满足 a = q * d + r,且 0 ≤ r < d。其中,q 被称为商,r 被称为余数。

所以,数学中的余数只能大于 0,按照定义,-14 除以 -6 的余数只能是 4。不过很遗憾,许多编程语言并不按照数学的定义来。

取余运算(rem)

取余运算的步骤为:

  • 计算商:c = a / b,商值 c 向 0 方向舍入
  • 计算模或者余数: r = a - c * b

朝 0 取整:

  • 当 c 为正时,舍弃其小数部分的值
  • 当 c 为负时,也是舍弃其小数部分的值
  • 比如,2.33 朝 0 取整后为 2,而 -2.33 朝 0 取整后为 -2

在 C 语言中 % 采用的是取余运算。

  • 14 rem 6 = 2,因为 14 = 2x6+2
  • -14 rem 6 = -2,因为 -14 = (-2)x6+(-2)
  • 14 rem -6 = 2,因为 14 = (-2)x(-6)+2
  • -14 rem -6 = -2,因为 -14 = 2x(-6)+(-2)

取模运算(mod)

取模运算的步骤为:

  • 计算商:c = a / b,商值 c 向负无穷方向舍入
  • 计算模或者余数: r = a - c * b

朝负无穷方向取整:

  • 当 c 为正时,舍弃其小数部分的值
  • 当 c 为负时,加 -1,舍弃其小数部分的值
  • 比如,2.33 朝负无穷方向取整后为 2,而 -2.33 朝负无穷方向取整后为 -3

在 Python 中 % 采用的是取模运算。

  • 14 mod 6 = 2,因为 14 = 2x6+2
  • -14 mod 6 = 4,因为 -14 = (-3)x6+4
  • 14 mod -6 = -4,因为 14 = (-3)x(-6)+(-4)
  • -14 mod -6 = -2,因为 -14 = 2x(-6)+(-2)

相关内容

热门资讯

手机安卓系统越高越好,探索最新... 你有没有发现,每次手机更新系统,你的手机就像脱胎换骨了一样?没错,说的就是你,那个安卓手机!今天,咱...
鸿蒙系统怎么用回安卓,轻松实现... 你是不是也和我一样,对鸿蒙系统的新鲜感还没过,却又忍不住想回到熟悉的安卓世界?别急,今天就来手把手教...
苹果7跟安卓系统,性能对决与用... 你有没有想过,为什么苹果7那么受欢迎,而安卓系统却有着庞大的用户群体?今天,我们就来聊聊这个话题,看...
安卓手机刷简化系统,轻松实现流... 你有没有想过,你的安卓手机其实可以变得更加轻快、流畅呢?没错,就是通过刷简化系统!今天,就让我带你一...
社保掌上通安卓系统,轻松掌握在... 你有没有发现,现在的生活越来越离不开手机了?无论是购物、聊天还是办公,手机都能轻松搞定。这不,今天就...
安卓系统便宜的手机,盘点安卓系... 你有没有想过,拥有一部安卓系统的手机,却不用花大价钱?现在,我就要给你揭秘那些价格亲民,性能却不打折...
安卓8.0系统单机游戏,探索单... 你有没有发现,自从安卓8.0系统更新后,手机里的游戏体验简直像开了挂一样?没错,今天就来聊聊这个话题...
适合安卓系统平板笔记,高效笔记... 你有没有发现,随着科技的发展,平板电脑已经成为了我们生活中不可或缺的好伙伴呢!尤其是安卓系统的平板,...
旗鱼平板刷安卓系统,畅享智能生... 你有没有想过,你的旗鱼平板刷上安卓系统后,世界会变得多么精彩?想象那些原本只能在电脑上畅游的APP,...
安卓系统更新强行停止,揭秘原因... 最近你的安卓手机是不是也遇到了一个让人头疼的问题?没错,就是安卓系统更新突然强行停止了!这可真是让人...
安卓系统如何备份图片,轻松保存... 手机里的照片可是我们珍贵的回忆啊!有没有想过,万一手机不小心摔了或者丢失了,那些珍贵的瞬间可就找不回...
安卓主流系统哪个好用,探寻最佳... 你有没有想过,手机里的安卓系统就像是我们生活中的各种品牌,各有各的特色和魅力。那么,这么多安卓系统里...
喜欢苹果像素安卓系统,系统之魂 你有没有发现,身边的朋友对手机的选择越来越有个性了呢?有的人偏爱苹果的优雅,有的人则钟情于安卓的活力...
安卓xp系统哪个好用,探寻最佳... 你有没有想过,手机系统就像是我们生活中的各种软件,各有各的特色和优势。今天,咱们就来聊聊安卓系统中的...
安卓系统云端怎么备份,轻松实现... 你有没有想过,手机里的那些珍贵的照片、视频和文件,万一不小心丢失了怎么办?别担心,今天就来给你支个招...
安卓系统9.0与ios,系统革... 你知道吗?在智能手机的世界里,安卓系统和iOS系统就像是一对相爱相杀的“欢喜冤家”。今天,咱们就来聊...
新机安卓怎么激活系统,体验流畅... 你新入手的安卓手机是不是有点儿蒙圈?别急,今天就来手把手教你如何激活系统,让你的新机焕发活力!?一、...
如何删除安卓系统信息,安卓系统... 手机里的信息越来越多,是不是感觉自己的隐私都快要被暴露无遗了?别担心,今天就来教你怎么轻松删除安卓系...
国产安卓系统哪个流畅,揭秘哪家... 你有没有想过,手机里的操作系统就像是我们的大脑,有时候它运行得快慢,直接影响我们的使用体验呢?今天,...
安卓怎么刷主机系统,掌握主机系... 你有没有想过,你的安卓手机或者平板,是不是也能像电脑一样,装上各种酷炫的系统呢?没错,今天就要来给你...