模运算是否在不同的基础上起作用?

时间:2015-09-26 04:50:55

标签: javascript math modulo

我对modulo(mod)运算符在不同基础上的属性感到困惑。假设我正在计算230 10 %11 10 = 10 10 。如果我切换到16,那么E6 16 %B 16 = A 16 ?数字系统的基础是否与mod操作有关?

(注意:我正在使用这个用于我正在编写的JavaScript中的小计算器应用程序,但我不明白为什么语言应该重要。)

2 个答案:

答案 0 :(得分:5)

模(mod)运算符意味着在除法后取余数。该余数的值不依赖于基数。电脑使用二进制。只有当您输入或显示数字时,才能确定基数。

换句话说, base 就是如何显示值。考虑由Roman Numeral X 表示的数字。您还可以将其显示为 10 十进制(十进制),或 1010 二进制。如果除以罗马数字 IV 4 十进制或 0100 二进制),则会获得剩余的罗马数字 II ,或十进制 2 ,二进制 0010

总之,三个等式中的是相同的 - 只有显示变化:

X mod IV = II         // Roman Numerals
10 mod 4 = 2          // Base ten (decimal)
1010 mod 0100 = 0010  // Binary

为了使用户清楚,您可能希望要求所有操作数和mod结果都在同一个基础上。

答案 1 :(得分:1)

88₍₁₀₎->130₍₈₎->10021₍₃₎

具有模数和基数的事情是,您必须小心处理 以及您的操作方式...

如果您想使用模数转换方法将除10以外的任何数字转换为模数,将无法正常工作。我目前正在尝试为每个基数创建模数...

Here's a little table I did to explain my point of view