Java中的相除(/)和取余(%)的实现方法
取模运算与取余运算两个概念有重叠的部分但又不完全一致。主要的区别在于对负整数进行除法运算时操作不同。
对于整形数a,b来说,取模运算或者求余运算的方法都是:
1、求 整数商 c = a / b;
2、计算模或者余数 r = a - c* b .
取模运算和取余运算在第一步不同:
取余运算在取c值时,向0方向舍入;而取模运算在取c值时,是向负无穷方向舍入
各个环境下运算符%的含义不同,C/C++,Java为取余,python为取模
Java取余运算规则如下:
a%b = a - (a/b)*b
让我们先看一段代码:
public class Division_remainder {
public static void main(String[] args) {
int a = 13 / 5;
int b = 13 % 5;
int c = 5 / 13;
int d = 5 % 13;
int e = 13 / -5;
int f = -13 / 5;
int h = -13 % 5;
int j = 13 % -5;
System.out.println(a + "," + b);
System.out.println(c + "," + d);
System.out.println(e + "," + f);
System.out.println(h + "," + j);
}
结果为:
2,3
0,5
-2,-2
-3,3
再来一个一个分析:
a = 13 / 5,a = 2,其实就是数学上的13 / 5 ,结果为2。
b = 13 % 5,b = 3,这也是数学上的运算,得出余数为3。
c = 5 / 13,c = 0,因为被除数小于除数,结果可以看成0.x,但是int类型是整数类型,所以结果只为0。
d = 5 % 13,d = 5,数学上规定:如果被除数比除数小,商是0,余数就是被除数本身。
e和f不用说了,结果都为-2。
但是h和j怎么是一个-3一个3呢,因为取余运算的符号是根据第一个运算数决定的,-13 % 5结果是-3,而13 % -5结果则是3。
上一篇:Java跨session实现token接口测试过程图解
栏 目:JAVA代码
下一篇:微信小程序与AspNetCore SignalR聊天实例代码
本文地址:http://www.codeinn.net/misctech/50874.html


阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机




