文章目录
- 背景
- 探究
- 总结
被除数 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 + r
且0 ≤ r < b
。其中,q 被称为商,r 被称为余数。
我们计算下 (-7) % 3
,这个表达式正常情况下是求余数,计算过程如下图所示: 按自然数的除法运算规则,得到商值:
-3
,余数:2
,且完全满足上述两个关系表达式:-7 = (-3)*3 + 2
且 0 ≤ 2 < 3
。
那么,各种编程语言和计算器是否是按照这样的规则计算呢?下面列举了几个程序运算的结果:
程序语句输出C++(G++ 编译)cout关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?