基极转换器
一位十五世纪的德国商人问一位著名教授,他应该把儿子送到哪里接受良好的商业教育。这位教授回答说,德国大学足以教授这个男孩加减法,但他必须去意大利学习乘除法。在你放纵地笑之前,试着在不首先翻译罗马数字CCLXIV、MDCCCIX、DCL和MLXXXI的情况下,将它们相乘甚至相加。
保罗斯,超越数字
|
下面的设备在8个不同的底座之间进行转换。另一个设备允许用户指定转换的基础。
在任意基数中输入一个数字,若要查看转换,请单击任何其他输入控件。
请注意,任何基数中的位数(也称为基数)N是完全相同的数字N。例如,在二进制中(N=2)系统只有两个数字:0和1;以十进制表示(N=10)有十个:0、1、2、3、4、5、6、7、8、9。如果N超过10怎么办?
如果N>10,缺失的数字来自字母表(通常忽略大小写)。因此A类在任何以大于10为基数的数字系统中,代表十进制10。B类代表以大于11为基数的任何数字系统中的十进制11,依此类推。以下是十六进制(以16为基数)数字的列表:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。
习惯上,十六进制数字的前缀是0x,八进制数字的后缀是0。转换器将接受这种通用符号,但这并不是必需的。
请注意以下内容。在以N为基数的系统中,数字的表示只能由小于N的数字组成。
更准确地说,如果
(1) | M=ak个N个k个+一个k-1号机组N个k-1号机组+ ... + 一1N个1+一个0
|
0≤a时我<N我们在基N系统中有M的表示,并写入
如果我们将(1)重写为
(2) | M=a0+N·(a)1+N·(a)2+N·…)) |
求系数a的算法我变得更加明显。例如,一0=M(型号N)和一1=(M/N)(型号N),等等(K·阿特金森介绍了his中二进制、十进制和十六进制系统之间的转换细节基本数值分析,John Wiley&Sons,1985。)其他地方我解释了如何在两个递归和迭代方式.
在这里,在转换的一个阶段,我使用了一个内置函数parseInt,它似乎在第一个数字违反此条件时不会返回。这似乎是parseInt函数中的一个错误。请遵守规则:
在以N为基数的系统中,数字的表示只能由小于N的数字组成。
与大多数其他书籍一样,下面的书描述了如何在不同的系统之间进行转换,但很少讨论不同基数的算术运算问题。([阿特金森]演示了加法和乘法在二进制系统中的工作原理。)原因是一切都是一样的。一旦你知道如何在十进制中做到这一点,你就应该知道如何在其他基数中处理同样的事情。然而,这种逻辑对我们大多数人来说没有什么吸引力各种基的算术运算.
工具书类
- K.Atkinson,基本数值分析约翰·威利父子公司,1985年
- W.Dunham,数学宇宙,John Wiley&Sons,1994年
- 牡蛎矿,数论及其历史,多佛出版社,1976年
- J.A.Paulos,超越数字,复古图书,1992年
|联系人|
|首页|
|目录|
|算术|
|代数|
版权所有©1996-2018亚历山大·博戈莫尼