我知道如何从基数b转换为十进制但我不明白什么是base-b。我知道如果我们要转换为bas 10然后乘以那么是base-b(base 5)我们将基数乘以数字?
答案 0 :(得分:2)
为了遵循这一点,我们应该理解数字与其表示之间的区别。让我们从(自然)数字开始。有两个特殊数字:零和一。零是加法的中性元素(即你可以在不改变的情况下将零加零),其中一个是乘法的中性元素。这两个数字可以诱导每个其他数字。从零开始。然后,再添加一个。
数字的常见表示是十进制系统。但是,这纯粹是任意的,也可以使用任何其他系统。十二号中没有任何东西可以要求我们把它写成12.好的是所有算术规则都是在数字本身上定义的,而不是在它们的表示上。五加六将永远是十一。不管你怎么代表他们。您可能已经注意到,当我谈论数字时,我会使用数字,如果我谈论表示,我会使用任何其他表示。
好的,我们有我们的号码。现在我们需要一种方法来代表它们。想象一下,我们有三个符号a
,b
和c
。我们可以将前三个数字分配给他们
a (zero)
b (one)
c (two)
但是我们没有符号。如您所知,位置数字系统通过引入另一个位置来解决这个问题。然后,就像以前一样继续。按顺序分配下几个数字
ba (three)
bb (four)
bc (five)
ca (six)
cb (seven)
cc (eight)
您可能希望继续第三个职位:
baa (nine)
bab (ten)
bac (eleven)
...
这个系统的基础是三个(或ba
),因为我们有三个符号。我们可以观察到第二个位置的数字代表三个的倍数(b.
代表three + .
,c.
代表two times three + .
...)表达在基础ba
中,这是:b. = b * ba + .
,c. = c * ba + .
。这继续到所有位置,您可以概括出由数字dn ... d1 d0
组成的数字可以用众所周知的公式表示:
n = Sum(i) di * base^i
这个公式背后的直觉是,base
个数字带有一个数字,base^2
数字带有两个数字,依此类推。并且di * base^i
术语会跳过前几个(第一个数字与第一个数字匹配,然后是第二个数字等等)。
我们可以在bac
应该是11的例子中查看这个:
n = b * ba^c + a * ba^a + c * ba^a
= one * three^two + zero * three^one + two * three^zero
= nine + zero + two
= eleven
= bac
请记住,算术规则适用于数字而不适用于表示?因此,既然我们知道了数字的定义(上面公式中的第二行),我们可以使用任何其他数字表示。例如,十进制的:
n = one * three^two + zero * three^one + two * three^zero
= 1 * 3^2 + 0*3^1 + 2*3^0
= 9 + 0 + 2
= 11 (decimal)
但我们也可以使用其他基地,例如基-8:
n = one * three^two + zero * three^one + two * three^zero
= 1 * 3^2 + 0*3^1 + 2*3^0
= 11 + 0 + 2
= 13 (octal)
基本上,这些系统通过将数字序列系统地分配给后续数字而自然而然地产生。转换非常简单,因为位置方程适用于数字,而不适用于表示。
我希望这个答案不是太抽象并帮助你。