【问题标题】:Java modulus concept - arithmetic definition (a/b)*b+(a%b)Java模数概念——算术定义(a/b)*b+(a%b)
【发布时间】:2015-09-08 01:20:45
【问题描述】:

我最近开始学习代码 (Java),并根据第 15.17.3 节在 Oracle 网站上查找了模运算符。以下链接:

http://docs.oracle.com/javase/specs/jls/se8/html/jls-15.html#jls-15.17.3

基本上,如果a 是分母,b 是分母,它声明:(a/b) * b + (a%b) = a,它定义模运算符为:a%b = a – (a/b) * b

我很困惑,因为这个等式根本不起作用,可以简化为a%b = 0。我知道我的基本数学代数,所以我希望有人能告诉我它应该如何相等?

【问题讨论】:

标签: java definition modulo modulus


【解决方案1】:

对于整数,运算符/ 表示整数除法,而不是数学上的除法,例如:

7/2 = 3
6/2 = 3
5/2 = 2
4/2 = 2
3/2 = 1
2/2 = 1
1/2 = 0

用数学术语来说,java 规范中的公式将写成:

⌊a/b⌋ * b + (a%b) = a
a%b = a – ⌊a/b⌋ * b

【讨论】:

  • 很好地使用了地板数学符号,但我相信⌊x⌋Math.floor(x),它向负无穷大舍入,而a/b0 舍入。只要ab 是正数,你就很好,无论如何,谁在他们的头脑中尝试对负数取模。
  • 当您考虑余数运算符的实际作用时,最后一个等式真的很有意义,它与积分除法的关系。
  • @Lashane,谢谢,这正是我理解方程式所需的缺失知识。问题解决了:)
猜你喜欢
  • 2021-11-28
  • 1970-01-01
  • 2017-01-21
  • 2014-03-29
  • 1970-01-01
  • 2021-10-06
  • 1970-01-01
  • 2021-11-10
  • 1970-01-01
相关资源
最近更新 更多