如何使用余数运算符

时间:2017-04-05 23:19:48

标签: java operators

目前我正在使用Java中的%运算符。我以为我明白了,但在遇到这个问题之后我现在很困惑。所以我知道10%3 =剩余1.我的问题是为什么3%8 =剩余3我认为这将等于0因为3进入8次零次?另一个例子是2%8 =剩余2为什么这些余数也不为零呢?如果有人能够解释为什么这会很棒!谢谢!

2 个答案:

答案 0 :(得分:1)

https://docs.oracle.com/javase/tutorial/java/nutsandbolts/op1.html

的Java教程中解释了余数运算符

如果您正在寻找模运算符,那么请使用Math.floorMod来处理您想要的负数。该文档提供了%floorMod之间差异的示例:http://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#floorMod-int-int-

答案 1 :(得分:0)

从数学上讲,这是正确的行为。

希望人们会给我一个题外话,但整数mod n是从0到puts("Write is a string that you want to print in reverse") #taking a string from the user string = gets.to_s #getting input and converting into string def reverse(string) i = 0 abc = [] # creating empty array while i < string.length abc.unshift(string[i]) #populating empty array in reverse i = i + 1 end return abc.join end puts ("In reverse: " + reverse(string)) 的所有整数。它们形成multiplicative group,这对数论和密码学很重要。事实上,如果你这样做

n - 1

这将一遍又一遍地给你从0到(n - 1)的所有数字,就像小组一样。

在不详细说明的情况下,mathematical group是一个集合,其操作行为或多或少与您期望的“普通”算术一样。例如,如果一个集合在乘法下形成一个组,则意味着乘法“适用于”该集合。

如果for (int i = 0; i < x; i++) { Console.WriteLine(i % n); } 是素数的幂(例如32),则整数mod n形成finite field,这意味着它的行为与普通算术非常相似。

TL; DR 此行为是设计使然。它在数学上也完全正确。

相关问题