我对modulo(mod)运算符在不同基础上的属性感到困惑。假设我正在计算230 10 %11 10 = 10 10 。如果我切换到16,那么E6 16 %B 16 = A 16 ?数字系统的基础是否与mod操作有关?
(注意:我正在使用这个用于我正在编写的JavaScript中的小计算器应用程序,但我不明白为什么语言应该重要。)
答案 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以外的任何数字转换为模数,将无法正常工作。我目前正在尝试为每个基数创建模数...