mod的运算规则是啥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mod的运算规则是啥?相关的知识,希望对你有一定的参考价值。

mod函数是一个求余函数,其格式为: mod(nExp1,nExp2),即是两个数值表达式作除法运算后的余数。特别注意:在EXCEL中,MOD函数是用于返回两数相除的余数,返回结果的符号与除数(divisor)的符号相同。

Mod 运算符,用来对两个数作除法并且只返回余数。属算术运算符。

Mod 运算符示例:

1、10 Mod 5 ' 返回 0。(10÷5=2余0)。

2、10 Mod 3 ' 返回 1。(10÷3=3余1)。

两个异号整数求余

1、函数值符号规律(余数的符号) mod(负,正)=正 mod(正,负)=负。

结论:两个整数求余时,其值的符号为除数的符号。

2、取值规律,先将两个整数看作是正数,再作除法运算。

①能整除时,其值为0 (或没有显示)。

②不能整除时,其值=除数×(整商+1)-被除数。

参考技术A print 4 mod -3
1
print 4 mod 3
1
print -4 mod -3
-1
print -4 mod 3
-1

print -7.8 mod -4.56
-3

总结:Mod就是求余数或称取模,结果是两数相除后的余数。

规则:若参加运算的操作数不是整数,先将其四舍五入成整数再运算;若参加运算的数含有负数,则先取绝对值,再求余,结果的符号与被除数符号相同

mod_rewrite规则中的@符号是啥意思

【中文标题】mod_rewrite规则中的@符号是啥意思【英文标题】:What does @ symbol mean in mod_rewrite rulesmod_rewrite规则中的@符号是什么意思 【发布时间】:2021-09-11 17:42:53 【问题描述】:

我正在寻找一种方法来防止从我网站上的直接 URL 访问我的 PDF 文件,我发现了这些 htaccess 规则:

RewriteEngine On
RewriteCond %HTTP_HOST@@%HTTP_REFERER !^([^@]*)@@http?://\1/.*
RewriteRule .*\.pdf [NC,F]

尽管它看起来很完美,但我并不真正理解这些 @ 符号在 RewriteCond 规则中的含义。我对 regex 有一些基础知识,但在 apache 和 regex 文档上没有找到与这些相关的任何内容,而且我发现规则的文章没有提供任何信息。

有什么想法吗?

【问题讨论】:

【参考方案1】:

简答:它基本上是HTTP_HOST%HTTP_REFERER 值之间的分隔符。在RewriteCond 指令中执行条件检查时匹配它们的值。

解释性答案: 现在为什么我们将这些 @@ 字符作为 2 个 apache 变量之间的分隔符。每当我们想比较 2 个值是 EQUAL 还是 SAME 时,它都很简单,然后我们就使用它,因为这有助于我们在捕获组中捕获值,然后如果条件中使用的反向参考值不相同,那么我们的条件将失败。

现在来看看当前的场景:

假设我们的域名是:www.example.comHTTP_REFERER 的值为:http://www.example.com/en-US/JavaScript

那么%HTTP_HOST@@%HTTP_REFERER 会做的是: 它将使价值: www.example.com@@http://www.example.com/en-US/JavaScript

现在来到 Cond 线的右侧: !^([^@]*)@@http?://\1/.*

您会看到捕获组的值为www.example.com,当我们在http?://\1 中将其用作\1 时,它实际上会检查URL 是否为http://www.example.com/.*。如果它不等于,则继续请求 URI。

基本上我们这样做的原因是因为没有直接的方法来检查 URI 中的 2 个值是否相等。

关于改进规则的建议:

RewriteEngine On
RewriteCond %HTTP_HOST@@%HTTP_REFERER !^([^@]*)@@http?://\1/.*
RewriteRule .*\.pdf/?$ - [NC,F]

【讨论】:

好的,我明白了,谢谢你的详细回答!

以上是关于mod的运算规则是啥?的主要内容,如果未能解决你的问题,请参考以下文章

Mod取余函数计算规则

C语言中取整的规则是啥?

C语言双目运算符两边的运算数类型不一致系统自动转换的规则是啥?比如1.0/2=0.5那为啥不是1.0/2=0呢?

booth补码乘法算法中乘数的右移规则是啥?

数学里面的mod是啥意思?怎么运算?

两个 mod 重写规则