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别说取余(%)运算简单你真的会吗
一,直击现场 下面我来抛出几道题: 说明m是商,n是余数: (1)正数%正数 3%2=m--.n 2%3=m--.n (2)正数%负数或者负数%正数 -3%2=m--.n 3%-2=m--.n -2%3=m--.n 2%-3=m--.n (3)负数%负数 -3%-2=m--.n -2%-3=m--.n 二,验证时刻 下面的结果没有商m只有余数n;有没有全部答对呢?没有的话来看总结吧 三,总结 (1) 3%2=1--.1 2%3=0--.1 正数除以正数: 商正余正 (2) -3%2=-1--.-
-
Java两整数相除向上取整的方式详解(Math.ceil())
目录 前言: 方式一: 添加三目运算符逻辑代码 方式二:使用ceil函数 方式三:其他逻辑 最后总结 附:java向上取整函数Math.ceil() 前言: Java中两个整数相除,如果不能整除,默认是向下取整的.例如:11 除以 3 的结果是 3.然而,某些情况下(eg. 把11个糖果,每3个分一堆,不足三个也分成一堆,可以分几堆?),我们需要向上取整,这样的情况该如果处理呢? 方式一: 添加三目运算符逻辑代码 x / y + (x % y != 0 ? 1 : 0); 这种方法逻辑上很简单,
-
Java中常见的日期操作(取值、转换、加减、比较)
Java 的开发过程中免不了与 Date 类型纠缠,准备总结一下项目经常使用的日期相关操作,JDK 版本 1.7,如果能够帮助大家节约那么几分钟起身活动一下,去泡杯咖啡,便是极好的,嘿嘿.当然,我只提供了可行的解决方案,并不保证是最佳实践,欢迎讨论. 1. 日期取值 在旧版本 JDK 的时代,有不少代码中日期取值利用了 java.util.Date 类,但是由于 Date 类不便于实现国际化,其实从 JDK1.1 开始,就更推荐使用 java.util.Calendar 类进行时间和日期方面的处
-
在java中实现C#语法里的按引用传递参数的方法
在C#中,在次函数中调用时改变了其中的数值,主函数中也将发生改变 ref 关键字使参数按引用传递.其效果是,当控制权传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中.若要使用 ref 参数,则方法定义和调用方法都必须显式使用 ref 关键字 out 关键字会导致参数通过引用来传递.这与 ref 关键字类似,不同之处在于 ref 要求变量必须在传递之前进行初始化.若要使用 out 参数,方法定义和调用方法都必须显式使用 out 关键字. Java里面不像C#那样,Java只有对象类
-
java中的equals()和toString()方法实例详解
java中的equals()和toString()方法 , 这里写个小例子帮助大家学习理解此部分知识. /* 所有对象的父类Object Object中的方法: equals() 对象是否相同的比较方法 toString()对象的字符串表现形式 */ class Person { String name; int age; Person(String name, int age) { this.name = name; this.age = age; } } class ObjectDemo {
-
Java 中二进制转换成十六进制的两种实现方法
Java 中二进制转换成十六进制的两种实现方法 每个字节转成16进制,方法1 /** * 每个字节转成16进制,方法1 * * @param result */ private static String toHex(byte[] result) { StringBuffer sb = new StringBuffer(result.length * 2); for (int i = 0; i < result.length; i++) { sb.append(Character.forDigi
-
详解Java中NullPointerException异常的原因详解以及解决方法
NullPointerException是当您尝试使用指向内存中空位置的引用(null)时发生的异常,就好像它引用了一个对象一样. 当我们声明引用变量(即对象)时,实际上是在创建指向对象的指针.考虑以下代码,您可以在其中声明基本类型的整型变量x: int x; x = 10; 在此示例中,变量x是一个整型变量,Java将为您初始化为0.当您在第二行中将其分配给10时,值10将被写入x指向的内存中. 但是,当您尝试声明引用类型时会发生不同的事情.请使用以下代码: Integer num; num
-
浅谈Java中Collections.sort对List排序的两种方法
目录 一.Collections.sort的简单使用 二.问题提出 三.Comparable实现排序 四.Comparator实现排序 五.Comparable 与Comparator区别 一.Collections.sort的简单使用 说到List的排序,第一反应当然是使用Collections.sort,方便简单.下面实现一下~~ private void sortStrings() { List<String> list = new ArrayList<String>();
-
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 让
-
MapStruct处理Java中实体与模型间不匹配属性转换的方法
摘要: 前面介绍了MapStrut简单用法,MapStrut的最重要的特点就是处理Java中实体与模型间不匹配属性的转换. 实体模型 有一个User对象: public class User { private Integer id; private String name; private double account; private boolean married; // setters, getters, toString() } 有一个Employee 对象: public class
-
详解Java中的线程让步yield()与线程休眠sleep()方法
线程让步: yield() yield()的作用是让步.它能让当前线程由"运行状态"进入到"就绪状态",从而让其它具有相同优先级的等待线程获取执行权:但是,并不能保证在当前线程调用yield()之后,其它具有相同优先级的线程就一定能获得执行权:也有可能是当前线程又进入到"运行状态"继续运行! 示例: class ThreadA extends Thread{ public ThreadA(String name){ super(name); }
随机推荐
- PHP中创建空文件的代码[file_put_contents vs touch]
- java求数组最大值和最小数示例分享
- Oracle 分析函数RANK(),ROW_NUMBER(),LAG()等的使用方法
- 浅谈Python基础之I/O模型
- 关于在IE下的一个安全BUG --可用于跟踪用户的系统鼠标位置
- PHP设计模式之装饰者模式代码实例
- android教程之intent的action属性使用示例(intent发短信)
- php指定长度分割字符串str_split函数用法示例
- Linux中使用C语言的fork()函数创建子进程的实例教程
- Oracle中 lsnrctl命令使用总结(推荐)
- jQuery筛选数组之grep、each、inArray、map的用法及遍历json对象
- jQuery复合事件用法示例
- 『jQuery』取指定url格式及分割函数应用
- java swing编程入门代码编写(java编程入门)
- Java使用poi包读取Excel文档代码分享
- 基于 Vue.js 之 iView UI 框架非工程化实践记录(推荐)
- vue.js 微信支付前端代码分享
- Java发送邮箱验证码、session校验功能
- 快速解决brew安装特定版本flow的问题
- Java反射机制的精髓讲解