java中的取模_Java 中的取模和取余
期末复习密码学时需要用到取模运算,发现 Java 中的 % 运算符并不是取模运算(Modulo Operation),而是取余运算(Complementation)。
计算方法
对于整数 a,b 来说,取模运算和取余运算的过程相同:
求整数商:c=a/b
计算模或者余数:r=a−c×b
只是取模和取余在第一步求商的方法上有所不同:取余运算在取 c 的值时,向 0 方向舍入( fix() 函数);而取模运算在计算 c 的值时,向负无穷方向舍入( floor() 函数)。
Java 示例
Java 中的取余运算是 %,而取模运算是 Math.floorMod()。
System.out.println("------Complementation------");
System.out.println(7 % 4);
System.out.println((-7) % 4);
System.out.println(7 % (-4));
System.out.println((-7) % (-4));
System.out.println();
System.out.println("------Modulo Operation------");
System.out.println(Math.floorMod(7, 4));
System.out.println(Math.floorMod(-7, 4));
System.out.println(Math.floorMod(7, -4));
System.out.println(Math.floorMod(-7, -4));
// 输出结果
------Complementation------
3
-3
3
-3
------Modulo Operation------
3
1
-1
-3
从运行结果可以看出:取模运算结果的符号和 b 一致,取余运算结果的符号和 a 一致。
注:C 和 C++ 中的 % 也为取余,Python 中的 % 为取模。
java中的取模_Java 中的取模和取余相关推荐
- java中integer的范围_java中integer取值范围是什么
java中integer取值范围是什么 发布时间:2020-08-27 10:01:14 来源:亿速云 阅读:69 作者:小新 这篇文章给大家分享的是有关java中integer取值范围是什么的内容. ...
- java 取上界_Java中的上界通配符 - java
我有两种通用方法来计算List元素的总和.方法的签名是 double method1(List extends Number> list)-在这里我使用通配符. double sumOfList ...
- java string 后几位_java中String占几个位元组
java中String占几个位元组以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! java中String占几个位元组 J ...
- java i 线程不安全_java中的++i是线程安全的吗?
java中的++i是线程安全的吗?为什么?怎么使它线程安全呢? 先说答案: 非线程安全 先说下为什么是非线程安全的? 从Java内存模型说起 Java内存模型规定了所有的便利都存储在主内存中,每个线程 ...
- java中的基本数据类型_Java中的基本数据类型和引用数据类型
数据类型用于帮助确定变量可存放的一组值,以及可对这组特定值执行的操作.Java提供了在所有平台上都普遍支持的多种数据类型. 一.基本数据类型 byte:Java中最小的数据类型,在内存中占8位(bit ...
- java实现次方的运算_Java中对于位运算的优化以及运用与思考
引言 随着JDK的发展以及JIT的不断优化,我们很多时候都可以写读起来易读但是看上去性能不高的代码了,编译器会帮我们优化代码.之前大学里面学单片机的时候,由于内存以及处理器性能都极其有限(可能很多时候 ...
- java中的集合框架_JAVA中的集合框架(上)List
第一节 JAVA中的集合框架概述 集合的概念,现实生活中:很多事物凑在一起就是一个集合:数学中的集合:具有相同属性事物的总体:JAVA中的集合:是一种工具类,就像是容器,储存任意数量的具有共同属性的对 ...
- Java NIO_I/O基本概念_Java中的缓冲区(Buffer)_通道(Channel)_网络I/O
I/O基本概念 缓冲区基础 缓冲区是I/O的基础, 进程使用read(), write()将数据读出/写入从缓冲区中; 当缓冲区写满, 内核向磁盘发出指令, 将缓冲区中数据写入磁盘中(这一步不需要CP ...
- java中string类相等_Java中String类的常见面试题
第一题:==与equals()的区别 1.判断定义为String类型的s1和s2是否相等 String s1 = "abc"; String s2 = "abc" ...
- java内存堆和栈_java中堆,栈主要区别及内存存储
java堆.栈.堆栈的区别 1.栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方.与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆. 2. 栈的优势是,存取速度 ...
最新文章
- R语言计算回归模型的SST、SSR以及SSE指标实战
- opencv-车牌区域提取
- Python 发送 email 的三种方式
- python面试-Python面试
- Nginx-Nginx配置文件详细说明
- UNITY 打包安卓APK
- 1190. 反转每对括号间的子串 golang反转字符串
- 关于tomcat的思考
- 程门立雪的故事,成语程门立雪的主人公是谁?
- PostgreSQL and SQLAlchemy [ubuntu]
- CSS中背景图片的坐标之使用说明及css中把所有背景图都放在一张图片上减少图片服务器的请求次数问题(转)...
- 杜克大学用13幅图告诉你人生的真谛,值得深思!
- win10虚拟机下载安装流程
- 《软件测试》[(美)Ron Patton]第三章阅读总结
- java框架技术路线 2019.10.3
- FX5U modbustcp通讯
- 用户标签(三):oneid与用户标签之间的相互打通 实现用户标签
- 2022-03-25 Python作业3
- Yii Framework 开发教程(32) Zii组件-GridView示例
- 串口、网口等自定义通信协议的问题
热门文章
- LeetCode-二分查找-278. 第一个错误的版本
- Windows任务管理器 explorer 进程
- R语言-时间序列-arima模型-forecast、tseries包
- 邮件协议(SMTP)性能测试总结(Foxmail邮箱)
- 使用jmeter对ActiveMQ集群性能方案进行评估--转载
- Java注解库_Java 注解详解
- jvm性能调优实战 - 34十万QPS的社交APP 如何优化GC性能提升3倍?
- Spring5源码 - 构建源码环境
- Tomcat - Tomcat 8.5.55 启动过程源码分析阶段一_init实例化Bootstrap
- MyBatis-21MyBatis高级结果映射【一对多映射(2种方式)】