网站首页 > java教程 正文
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
- 上一篇: Java 添加、读取和删除 Excel 批注
- 下一篇: 为什么HashMap不用取余操作来计算下标?
猜你喜欢
- 2024-11-19 滴滴从KV存储到NewSQL实战
- 2024-11-19 Java基础--While入门小练习
- 2024-11-19 java程序员必须要学习的源码——HashMap
- 2024-11-19 Java中HashMap源码解析
- 2024-11-19 入门级Java基础测试题,看看你能拿多少分
- 2024-11-19 Java中的大数据去重:七种解决方案与实战应用
- 2024-11-19 大厂爱问的HashMap的几个问题,看看你都答得上来吗?
- 2024-11-19 你知晓Java中的EnumMap吗?
- 2024-11-19 想要彻底搞懂HashMap?你得恶补下HashMap原理
- 2024-11-19 Java课程设计报告+源码-万年历的设计与实现
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)