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)

相关内容

热门资讯

安卓系统是否可以看代码,从代码... 你有没有想过,安卓系统那神秘的代码背后藏着怎样的秘密呢?是不是好奇过,自己能不能一窥究竟?今天,就让...
apk怎么连接安卓子系统,安卓... 你有没有想过,你的安卓手机里竟然还隐藏着一个神秘的子系统?没错,就是那个apk怎么连接安卓子系统的问...
安卓系统设置触屏开机,便捷操作... 手机屏幕突然黑屏了,是不是触屏设置出了问题?别急,今天就来手把手教你如何调整安卓系统的触屏开机设置,...
安卓系统访问本地连接,Andr... 你有没有想过,你的安卓手机里那些隐藏的小秘密?比如,如何轻松访问本地连接,让你的手机瞬间变身网络小达...
安卓系统qq坦白说,隐私互动新... 你有没有发现,手机里那个陪伴我们多年的QQ,最近在安卓系统上又有了新变化?没错,就是那个我们每天都要...
制作安卓系统iso镜像,ISO... 亲爱的读者们,你是否曾梦想过亲手打造一个属于你自己的安卓系统?想象那是一个完全按照你的喜好定制的系统...
智慧餐厅系统和安卓区别,技术融... 你有没有想过,未来的餐厅会是什么样子呢?想象你走进一家餐厅,不用排队点餐,不用等待服务员,甚至不用掏...
安卓os手表系统问题,安卓OS... 你有没有发现,最近你的安卓OS手表总是有点儿“闹脾气”?时不时地卡顿有时候还突然关机,真是让人头疼。...
安卓系统版本低光遇,揭秘安卓系... 你有没有发现,最近玩《光遇》的小伙伴们都在抱怨一个问题:安卓系统版本太低,游戏体验大打折扣!这不,今...
安卓是闭环系统吗,是闭环系统还... 说到安卓系统,你是不是也有过这样的疑问:安卓是闭环系统吗?这个问题可真是让人好奇不已。咱们就来一探究...
安卓系统导航测试,安卓系统导航... 你有没有发现,随着智能手机的普及,安卓系统的导航功能变得越来越重要了呢?想象你正在繁华的街头,想要找...
手机系统安卓版本太低 你有没有发现,有时候手机用着用着就感觉有点卡呢?别急,这可不是你的错觉哦!今天就来聊聊这个让人头疼的...
ios系统和安卓系统区别大吗,... 你有没有想过,为什么你的手机里装的是苹果的iOS系统,而朋友的手机却是安卓的呢?这两种系统,真的有那...
安卓系统运行环境是什么,揭秘安... 你有没有想过,你的手机里那个神奇的安卓系统,它到底是个啥样子?它就像一个魔法世界,让我们的手机变得如...
安卓系统门禁卡录入,便捷高效新... 你有没有想过,每天出入小区、公司,那小小的门禁卡,竟然隐藏着如此多的科技奥秘?今天,就让我带你一探究...
安卓优化手机系统空间,安卓系统... 手机里的空间越来越不够用了?别急,今天就来给你支几招,让你的安卓手机系统空间焕然一新!一、清理缓存,...
哪个代码可以刷安卓系统,都可能... 你有没有想过,手机刷机这件事儿?尤其是安卓系统,那可真是变化多端,让人眼花缭乱。今天,我就来给你揭秘...
安卓系统的视频怎么下载,一键掌... 亲爱的安卓用户们,你是否曾在观看一段精彩视频时,突然心生想法:这视频怎么下载下来,随时想看就看了呢?...
最精简的安卓7.0系统,安卓7... 你有没有想过,手机系统就像是我们生活中的小助手,有时候太复杂了,反而让人头疼。今天,我要给你介绍一个...
安卓系统如何镜像到电视,安卓系... 你有没有想过,把手机上的精彩内容直接投射到电视上,享受大屏幕带来的震撼体验?这可不是什么天方夜谭,现...