Java 求余操作符
来源:互联网 发布:qq老密数据库下载 编辑:程序博客网 时间:2024/06/01 08:43
百分号(%)是求余操作符。22%5即从22中拿走5,再拿走5...不够拿走,就余下了4。代码放在:
package semantics.statement;
public class ArithmeticOpDemo{
}
求余操作符有一些需要注意的细节。
- 整数与浮点数的不同
- 整数除法遵循规则
1.浮点数
通常我们不对浮点数求余。
static void remainderOperator(){ pln("15 / 4.0 = "+ 15/4.0); pln("15 % 4.0 = "+ 15%4.0); pln("7 % 2.2 = "+ 7 % 2.2); }15 / 4.0 = 3.75
15 % 4.0 = 3.0
7 % 2.2 = 0.39999999999999947
虽然15 % 4.0 比较理想,但是7 % 2.2不是我们希望的0.4,解释起来也麻烦。
2.整数除法遵循规则
如果两个操作数都是正整数,如同还没有学过小数的小朋友的计数方式。这是常用的方式,13/ 5 = 2
13 % 5 = 3
2 % 5 = 2
13 % 5 = 3
2 % 5 = 2
有奇葩问:13 / 5.0 = 2.6,那么余数是不是2.6的小数点后面的6。
我们只能够说,13 / 5.0 = 2.6,的确13 / 5 = (int)Math.floor(13 / 5.0),即2,你在这一步是对的,
那么,余数13 % 5 = 13- (13 / 5)*5 = 13-2*5 =3整数除法遵循规则:
(x/y)*y + x %y == x
x %y = x - (x/y)*y
如果负数参与计算,x/y 的结果很容易理解,可以将符号先写出来。
pln("-13/ 5 = "+ -13 / 5); // -2
pln("13/ -5 = "+ 13 / -5); // -2pln("-13/ -5 = "+ -13 / -5); // 2
但是,从x %y = x - (x/y)*y 可知,
-13% 5 = -13 - (-2) *5 = -13+10 = -3
13% -5 = 13 - (-2) *(-5) = 13 -10 = 3-13%-5 = -13 - 2*(-5) = -13 +10 = -3
虽然不难,但是一会3一会-3,程序猿通常很懒的,不希望搞这种东西。所以,
当%的一个或两个操作数是负数时,理解起来并不直观,因而应避免在负数时使用%。
3.i%2==0
求余操作时,0是个好东西,如同C语言中的0. 判断i是否偶数,使用if(i%2==0);判断i是否奇数数,不要if(i%2==1) ,因为还有i%2== -1。
例如打印[-1,6]之间的奇数:
static void remainderOp(){ for(int i = -1; i<6; i++ ){ if(i%2==0){ continue; } System.out.println("i =" + i); } }i =-1
i =1
i =3
i =5
如果是代码
static void remainderOp(){ for(int i = -1; i<6; i++ ){ //if(i%2==0) continue;System.out.println("i =" + i); if(i%2==1){ System.out.println("i =" + i); } } }i =1
i =3
i =5
0 0
- Java 求余操作符
- java——求余操作%
- JAVA中的求余
- Java求余运算
- JAVA蓝桥杯Fibonacci求余
- 用位操作代替求余操作
- 不使用加减乘除求余操作符求一个数的1/3
- 大数求余(java高精度)
- Java 除与求余运算
- 求余
- 求余
- 求余
- 求余
- 求余
- 求模 求余
- 学习5(求余运算符%)
- C++ Primer 学习笔记9 表达式 (求余、自增和自减操作符、箭头操作符、条件表达式、sizeof操作符、逗号操作符)
- 求余逆运算+负数求余
- 不要消费信任
- Linux下的fdisk用法
- 【45.65%】【codeforces 560B】Gerald is into Art
- 安装Ubuntu系统,你如何分区滴~?
- freeswitch之多分机顺振
- Java 求余操作符
- SVN linux下的安装与使用
- ubuntu14.04 node.js快速安装
- 深入解析struts.xml配置的实现原理
- ANDROID 秒级编译 FREELINE
- java实现直播功能或者视频监控,想用RPT协议,怎样把RPT协议集成到项目中
- UIWebView js oc相互调用的三种方法
- 性能优化四之Allocation Tracker工具使用
- 下周三国内涨油价几成定局