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

Does the modulo operation act in different bases?

我对 modulo (mod) 运算符在不同基数中的属性感到困惑。假设我正在计算 23010 % 1110 = 1010。如果我切换到 16 进制,E616 % B16 = A16 会吗?数字系统的基础对 mod 操作有影响吗?

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

modulo (mod) 运算符表示取除后的余数。该余数的值不取决于基数。计算机使用二进制。只有当你输入或显示数字时,base 才重要。

换句话说,base 就是一个值的显示方式。考虑由罗马数字 X 表示的数字。您还可以将其显示为十进制(以十为基数)的 10,或二进制的 1010。如果除以罗马数字 IV4 十进制或 0100 二进制),您将得到余数罗马数字II,或十进制的2,或二进制的0010

综上所述,三个方程中的是一样的——只是显示有变化:

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

为了让用户清楚,您可能希望所有操作数和 mod 结果都在同一基数中。

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

关于模数和底数的事情是你必须小心你所做的事情 以及你是如何做到的...

如果您想使用这种使用模的方法转换任何基数不是 10 的数字,它是行不通的...我目前正在寻求为每个基数创建模...

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