Java中的相除(/)和取余(%)的实现方法

网友投稿 1178 2023-01-02


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;

ihttp://nt 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。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:功能测试和接口测试工具(常用的接口测试工具)
下一篇:开源微服务网关(微服务统一网关)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~