网站首页 > 精选教程 正文
Java 中的取余运算(Complementation)是 % ,而取模运算(Modulo Operation)是 Math.floorMod() ,取余和取模并不一致。
- 计算方法
对于整数 a,b 来说,取模运算和取余运算的过程相同:
- 求整数商:c=a/b
- 计算模或者余数:r=a?c×b
只是取模和取余在第一步求商的方法上有所不同:取余运算在取 c 的值时,向 0 方向舍入( fix() 函数);而取模运算在计算 c 的值时,向负无穷方向舍入( floor() 函数)。
- 代码例子
int a = 7, b = 4;
System.out.println(String.format("%d %% %d = %d, %d mod %d = %d", a, b, a % b, a, b, Math.floorMod(a, b)));
a = -7;
System.out.println(String.format("%d %% %d = %d, %d mod %d = %d", a, b, a % b, a, b, Math.floorMod(a, b)));
a = 7;
b = -4;
System.out.println(String.format("%d %% %d = %d, %d mod %d = %d", a, b, a % b, a, b, Math.floorMod(a, b)));
a = -7;
b = -4;
System.out.println(String.format("%d %% %d = %d, %d mod %d = %d", a, b, a % b, a, b, Math.floorMod(a, b)));
输出如下:
7 % 4 = 3, 7 mod 4 = 3
-7 % 4 = -3, -7 mod 4 = 1
7 % -4 = 3, 7 mod -4 = -1
-7 % -4 = -3, -7 mod -4 = -3
可以得出结论:
a mod b: 取模运算结果的符号和 b 一致,
a % b: 取余运算结果的符号和 a 一致。
注:C 和 C++ 中的 % 也为取余,Python 中的 % 为取模。
参考资料:
https://www.cnblogs.com/LeeFire/p/10265702.html
猜你喜欢
- 2024-11-08 算法:剪绳子之大数越界情况下的求余问题
- 2024-11-08 Java中Math函数的使用 java中math.e
- 2024-11-08 Java算术运算符 java算术运算符多次测试
- 2024-11-08 我们必须要了解的Java位运算(不仅限于Java)
- 2024-11-08 Java编程入门100例之四十一(取余操作)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)