期末复习密码学时需要用到取模运算,发现 Java 中的 % 运算符并不是取模运算(Modulo Operation),而是取余运算(Complementation)。

计算方法

对于整数 \(a\),\(b\) 来说,取模运算和取余运算的过程相同:

求整数商:\(c = a / b\)

计算模或者余数:\(r = a - c \times 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 中的取模和取余相关推荐

  1. java中的取模_Java 中的取模和取余

    期末复习密码学时需要用到取模运算,发现 Java 中的 % 运算符并不是取模运算(Modulo Operation),而是取余运算(Complementation). 计算方法 对于整数 a,b 来说 ...

  2. java int范围_Java之int及它的取值范围

    int是Java中的8种基本类型之一,一个int值占4个byte(8个二进制位) 8中基本类型所占字节分别是多少: int4个字节 2个字节 long字节 2个字节 float4个字节 double8 ...

  3. java mod %区别_Java中 % 与Math.floorMod() 区别详解

    %为取余(rem),Math.floorMod()为取模(mod) 取余取模有什么区别呢? 对于整型数a,b来说,取模运算或者取余运算的方法都是: 1.求 整数商: c = a/b; 2.计算模或者余 ...

  4. java 数据类型分为_JAVA中分为基本数据类型及引用数据类型

    byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0 short:短整型,在内存中占16位,即2个字节,取值范围-32768~32717,默认值 ...

  5. java同步队列_Java 中队列同步器 AQS(AbstractQueuedSynchronizer)实现原理

    前言 在 Java 中通过锁来控制多个线程对共享资源的访问,使用 Java 编程语言开发的朋友都知道,可以通过 synchronized 关键字来实现锁的功能,它可以隐式的获取锁,也就是说我们使用该关 ...

  6. java list对象_JAVA中list

    Java 查找 List 中的最大值.最小值 Java 查找 List 中的最大值.最小值 java> List list = new ArrayList(); java.util.List l ...

  7. java 闭区间随机数_Java中在特定区间产生随机数

    生成指定范围内的随机数 这个是最常用的技术之一.程序员希望通过随机数的方式来处理众多的业务逻辑,测试过程中也希望通过随机数的方式生成包含大量数字的测试用例.问题往往类似于: 如何随机生成 1~100 ...

  8. 猫眼电影票房爬取到MySQL中_爬虫之爬取猫眼电影专业版实时数据排行榜

    猫眼电影专业版实时数据排行榜是个持续更新的用ajax写成的网站,一般而言,爬取它比较麻烦,需要使用ajax/js进行爬取,python中的requests库可以获取网站的ajax,再通过json库解析 ...

  9. java的指数函数_Java中常用的数学函数

    话不多说,上代码 三角函数方法 Math.PI 圆周率的近似值 Math.E 算术常量e的值(近似于2.71828) Math.sin(radians) 返回角度的三角正弦函数值(以弧度为单位) Ma ...

最新文章

  1. win使用linux共享打印机,Ubuntu 12.04以及 Window 下使用共享打印机
  2. ​HOG特征也可以作为图像重建的目标!FAIRJHU提出新的one-stage自监督预训练模型MaskFeat!...
  3. Filter获取Spring Bean对象
  4. Web Api 基于Zookeeper的服务注册与发现
  5. ajxs跨域 php_PHP Ajax 跨域问题最佳解决方案
  6. 一主多备几影响 oracle,Oracle 10g 一主多备的搭建技巧
  7. OpenCV-Python实战(11)——OpenCV轮廓检测相关应用
  8. [一定要看完]住在隔壁的刚毕业的大学生小夫妻
  9. MSN 通信协议学习笔记(转)
  10. 新闻发布系统类图_信息系统项目管理师快速记忆口诀
  11. Robot Framework自动化测试用具 Wait Until Keyword Succeeds关键字使用案例
  12. cheng-06、初始化失败_Destroying singletons报错问题
  13. java求一批数据的最大值、最小值、以及掐头去尾之后的平均值。
  14. 轻量级过程改进之需求管理
  15. 一款仿 macOS 的开源操作系统
  16. ADC 学习笔记(二)指标参数总结
  17. CSS定位(position))之sticky 定位
  18. 简单脉搏波波形分析系统设计与实现
  19. 计算极限的时候,什么情况下可以用等价无穷小替换
  20. zoom 用户被锁定_深入研究针对Zoom用户的重新打包的APK

热门文章

  1. linuxCentOS7下修改ip地址
  2. TZC 1283: 简单排序 —— 冒泡排序
  3. 一组漫画完美总结互联网人生
  4. 阿里云服务器如何搭建ip
  5. 六个国外免费DNS服务-做英文与外贸网站必备工具
  6. 万邦京东上传图片到JD API
  7. 达梦8数据库体系结构
  8. 华为手机真机调试HbuilderX
  9. C++之string类(2):三种访问遍历string类对象的方式
  10. 2018福建省“百越杯”CTF初赛writeup