求余运算符

笔记摘自《极客学院》

求余运算(a % b)是计算b的多少倍刚刚好可以容入a,返回多出来的那部分(余数)。

注意:
求余运算(%)在其他语言也叫取模运算。然而严格说来,我们看该运算符对负数的操作结果,"求余"比"取模"更合适些。

我们来谈谈取余是怎么回事,计算9 % 4,你先计算出4的多少倍会刚好可以容入9中:

2倍,非常好,那余数是1(用橙色标出)

在 Swift 中可以表达为:

    9 % 4    // 等于 1

为了得到a % b的结果,%计算了以下等式,并输出余数作为结果:

a = (b × 倍数) + 余数

倍数取最大值的时候,就会刚好可以容入a中。

94代入等式中,我们得1

9 = (4 × 2) + 1

同样的方法,我来们计算 -9 % 4

    -9 % 4   // 等于 -1

-94代入等式,-2是取到的最大整数:

-9 = (4 × -2) + -1

余数是-1

在对负数b求余时,b的符号会被忽略。这意味着 a % b 和 a % -b的结果是相同的。

浮点数求余计算

不同于 C 语言和 Objective-C,Swift 中是可以对浮点数进行求余的。

    8 % 2.5 // 等于 0.5

这个例子中,8除于2.5等于30.5,所以结果是一个Double0.5

其实其他语言都是同样的(下面就以java为实例):

时间: 2024-10-27 12:48:29

求余运算符的相关文章

C言语除法运算符“/和求余运算符“%

看似两个很简单的运算符.这篇文章作为对于此类运算符的各方面的疑问的汇总,却也真要把握用好它也不容易.期望对你都有一些帮助.     除法运算符"/二元运算符,具有左联系性.参加运算的量均为整型时,成果为整型,舍去小数.假如运算量中有一个为实型,成果为双精度实型. 例如:5/2=21/2=05/2.0=2.5          求余运算符"%二元运算符,具有左联系性.参加运算的量均为整型求余运算的成果等于两个数相除后的余数 例如:5%2=11%2=15%2.0和5.0%2成果是语法错误

Swift入门(八)——功能强大的求余运算符

求余运算符 在大部分语言中,%都是求余运算符.其功能非常简单,不过也只支持int类型正数之间的求余. 比如 10 % 3 = 1. 严格来说,正整数之间的求余的定义如下: 对于任意a,b∈N*,定义m = a % b,其中m满足: a = b * m + r且0 <= r < b Swift中的求余 使用场景拓展 Swift中的求余,不再是两个int类型正数之间的运算符了.不仅负数可以求余,浮点数也可以求余. 浮点数求余规则 首先不考虑符号看一下浮点数求余,其定义与正整数之间的求余非常类似.这

Swift学习笔记-基本运算符(Basic Operators)-求余运算符

求余运算(a % b)是计算b的多少倍刚刚好可以容入a,返回多出来的那部分(余数). 注意:求余运算(%)在其他语言也叫取模运算.然而严格说来,我们看该运算符对负数的操作结果,"求余"比"取模"更合适些. 我们来谈谈取余是怎么回事,计算9 % 4,你先计算出4的多少倍会刚好可以容入9中: 2倍,非常好,那余数是1(用橙色标出) 在 Swift 中可以表达为: 9 % 4 // 等于 1 为了得到a % b的结果,%计算了以下等式,并输出余数作为结果: a = (b

取模和求余的区别

通常情况下取模运算(mod)和求余(rem)运算被混为一谈,因为在大多数的编程语言里,都用'%'符号表示取模或者求余运算.在这里要提醒大家要十分注意当前环境下'%'运算符的具体意义,因为在有负数存在的情况下,两者的结果是不一样的. 对于整型数a,b来说,取模运算或者求余运算的方法都是: 1.求 整数商: c = a/b; 2.计算模或者余数: r = a - c*b. 求模运算和求余运算在第一步不同: 取模求余运算在取c的值时,向0 方向舍入(fix()函数): 而求余取模运算在计算c的值时,向

[转]取模运算和求余运算的区别

[转]取模运算和求余运算的区别 通常情况下取模运算(mod)和求余(rem)运算被混为一谈,因为在大多数的编程语言里,都用'%'符号表示取模或者求余运算.在这里要提醒大家要十分注意当前环境下'%'运算符的具体意义,因为在有负数存在的情况下,两者的结果是不一样的. 对于整型数a,b来说,取模运算或者求余运算的方法都是: 1.求 整数商: c = a/b; 2.计算模或者余数: r = a - c*b. 通常常用的是正数之间取模或求余.下面的可以先不关心. —————————————————————

(转)求模和求余

一直以为求模和求余是一回事,发现这两者是不同的.以下为网上转载的资料: 通常情况下取模运算(mod)和求余(rem)运算被混为一谈,因为在大多数的编程语言里,都用'%'符号表示取模或者求余运算.在这里要提醒大家要十分注意当前环境下'%'运算符的具体意义,因为在有负数存在的情况下,两者的结果是不一样的. 对于整型数a,b来说,取模运算或者求余运算的方法都是: 1.求 整数商: c = a/b; 2.计算模或者数: r = a - c*b. 求模运算和求余运算在第一步不同: 取模运算在取c的值时,向

Swift 求余运算

1 求余运算 2 3 求余运算(a % b)是计算b的多少倍刚刚好可以容入a,返回多出来的那部分(余数). 4 注意:求余运算(%)在其他语言也叫取模运算.然而严格说来,我们看该运算符对负数的操作结果,"求余"比"取模"更合适些. 5 我们来谈谈取余是怎么回事,计算9 % 4,你先计算出4的多少倍会刚好可以容入9中: 6 Art/remainderInteger_2x.png 7 2倍,非常好,那余数是1(用橙色标出) 8 9 在 Swift 中这么来表达: 10

求模和求余

一直以为求模和求余是一回事,发现这两者是不同的.以下为网上转载的资料: 通常情况下取模运算(mod)和求余(rem)运算被混为一谈,因为在大多数的编程语言里,都用'%'符号表示取模或者求余运算.在这里要提醒大家要十分注意当前环境下'%'运算符的具体意义,因为在有负数存在的情况下,两者的结果是不一样的. 对于整型数a,b来说,取模运算或者求余运算的方法都是: 1.求 整数商: c = a/b; 2.计算模或者数: r = a - c*b. 求模运算和求余运算在第一步不同: 取模运算在取c的值时,向

java中求余%与取模floorMod的区别

初学java的时候接触的%这个符号 百分号? 求余? 取模? 我只知道不是百分号,好像是求余,听别人那叫求模运算符,跟求余一样,于是我便信了. 思考之后开始迷糊,然后经过多次考证得到以下结论. 首先,%是求余的意思,不是求模的意思.求模不完全等于求余. 首先我们遵守公式: a = b * q + r; 这里的a是被除数,b是除数,q是商,r是余数也可以是模. q= a/b 且 |r| < |b| 于是得到: r = a – (a/b)*b; r的求值公式都是这样,那么求余和求模的区别在哪呢? 1