进制、二进制

                     

贡献者: addis

  • 本文存在未完成的内容。

1. $N$ 进制需要几个符号?

   我们日常熟悉使用十进制。但我们可能由于对其习以为常而忘记它一般的规则。所以我们不妨总结一下。用阿拉伯数字表示十进制数时,每一位共有十个符号:$0,1,\dots, 9$。要特别注意其中并没有 “十” 这个符号,必须要用两位数 $10$ 才能表示出十。

   许多国家的自然语言中存在比 $9$ 大的数字的单词,如英语的 eleven, twelve 可以用一个单词表示 $11$ 和 $12$,但是当我们讨论十进制的阿拉伯数字写法时,一位数符号中只有 $0,1,\dots, 9$ 而没有其他符号。

   下面我们会看到这个规律对任何进制都是一样的:$N$ 进制中的一位数只需要包括 $0$ 在内的 $N$ 个不同的符号,可以表示 $0,1,\dots,N-1$。而需要进位成两位数才可以表示 $N$ 本身。

2. 一般公式

预备知识 科学计数法、数量级、单位(高中),求和符号(高中)

   如果从 $0$ 开始,如何数数呢?从十进制中我们可以总结出来,当一位数的符号从第一个数到最后一个后,如果还需要下一个,就在左边一位使用下一个符号,并把当前位归零。例如 $9$ 可以看成 $09$,下一个数在第二位使用下一个符号 $10$。又例如 $199$ 的下一个数是 $200$,这是因为最右边两位同时达到了最后一个符号,所以要在第三位使用下一个符号并把前两位归零。注意我们假设可以在一个数字左边写上任意多位的 $0$ 而不影响它表示的值。

   所以十进制的(右边)第二位的 $1$ 代表 $10$ 倍,而第三位数代表 $100$ 倍……例如十进制的 $43576$ 表示

\begin{equation} 48576 = 4 \times 10^{4} + 3 \times 10^{3} + 5 \times 10^{2} + 7\times 10 \times 10^{1} + 6 \times 10^{0} ~. \end{equation}
这里的每一项使用了科学计数法,$10^4$ 表示 $10000$,$10^3$ 表示 $1000$ 等。特殊地,$10^1=10$,$10^0=1$。

   那么相似地,对于任意的 $N$ 进制,当某一位从 $0$ 变到 $N-1$ 后,如果还需要下一个符号,就在下一位加 $1$。也就是下一位的一个数等于上一位的 $N$ 倍。

   可以总结出,$m$ 位的 $N$ 进制数可以表示的最大的数是 $9\dots9_\text{N}$($m$ 个 $9$),也就是 $N^m-1$。所以 $m$ 位的 $N$ 进制数一共可以表示 $N^m$ 个不同的数(包括 $0$)

   根据式 1 可以总结出 $m$ 位 $N$ 进制数的一般表达式:

\begin{equation} d_{m-1}\dots d_1d_0 = \sum_{n=0}^{m-1} d_n N^n~. \end{equation}
这里使用了求和符号

3. 八进制

   作为一个和十进制相近的例子,我们先来学八进制。八进制下,我们每位只能使用 $0,\dots,7$ 这 $8$ 个符号。当我们需要 $7$ 的下一个符号时,就进位到下一位,即 $10$。为了和十进制的 $10$ 区分,我们把它写成 $10_\text{8}$。所以 $10_\text{8} = 8$。

   我们可以继续数七个数,到 $17_\text{8}$,那么下一个数又该进位并把第一个归零,即成为 $20_\text{8}$。再数七个到 $27_\text{8}$,然进位成 $30_\text{8}$。当你继续数到 $77_\text{8}$,那么下一个数需要向第二位进位,但第二位也已经满了,所以需要向第三位进位,成为 $100_\text{8}$。

   所以如果把式 1 左边的数视为 $8$ 进制的 $48576_\text{8}$,它在十进制中表示多少呢?类比过来,就是

\begin{equation} 48576_\text{8} = 4\times 8^{4} + 3\times 8^{3} + 5\times 8^{2} + 7\times 8^1 + 6\times 8^0 = 18302~. \end{equation}

4. 二进制

   根据上文,二进制只有两个符号 $0$ 和 $1$。二进制是最小的进制,因为 “一进制” 将不能表示 $0$ 以外的任何数。

   我们用二进制数数:$0_\text{2}$,$1_\text{2}$ 这时已经到最后一个符号了,于是进位得到 $10_\text{2}$,再数 $11_\text{2}$,这时发现两位数都是最后一个符号,向第三位进位得 $100_\text{2}$,$101_\text{2}$,$110_\text{2}$,$111_\text{2}$。向第四位进位:$1000_\text{2}$,$1001_\text{2}$,$1010_\text{2}$,$1011_\text{2}$,$1100_\text{2}$,$1101_\text{2}$,$1110_\text{2}$,$1111_\text{2}$……

   二进制数如何转换位十进制呢?一个八位二进制数的例子:

\begin{equation} 11010010_\text{2} = 2^7 + 2^6 + 0\times 2^5 + 2^4 + 0\times 2^3 + 0 \times 2^2 + 1\times 2^1 + 2^0 = 210~. \end{equation}

5. 十六进制

   十六进制需要 $16$ 个符号,所以我们需要在十进制的 $10$ 个符号基础上额外添加 $6$ 个,一般使用字母 a 到 f 分别表示 $10$ 到 $15$,也可以用大写。例如

\begin{equation} \mathrm{47a58d}_\text{16} = 4\times 16^5 + 7\times 16^4 + 10\times 16^3 + 5\times 16^2 + 8 \times 16^1 + 14 = 4695438~. \end{equation}

   十六进制在计算机领域经常被使用。这是因为一位十六进制数与 $4$ 位二进制数具有一一对应的关系。这是因为 $4$ 位二进制数可以表示的数有 $2^4 = 16$。

6. 小数

   我们来思考 $N$ 进制的小数点表示什么。任何整数可以视为小数点在最右边且右边都是零,每当小数点向左移动一位,就代表原来的数的 $1/10$,向右移动一位就是乘以 $10$。

   那么同理,$N$ 进制中,每把小数点向左移动一位,就代表原来的数乘以 $1/N$,向右移动一位就代表乘以 $N$。

   我们可以把式 2 改写为支持小数的形式:

\begin{equation} d_{m-1}\dots d_1d_0.d_{-1}d_{-2}\dots d_{-l} = \sum_{n=-l}^{m-1} d_n N^n~. \end{equation}
其中 $d_0$ 后面的点表示小数点。也就是说,小数点左边的那位数始终是个位数。

7. 进制的转换

  

未完成:...


致读者: 小时百科一直以来坚持所有内容免费无广告,这导致我们处于严重的亏损状态。 长此以往很可能会最终导致我们不得不选择大量广告以及内容付费等。 因此,我们请求广大读者热心打赏 ,使网站得以健康发展。 如果看到这条信息的每位读者能慷慨打赏 20 元,我们一周就能脱离亏损, 并在接下来的一年里向所有读者继续免费提供优质内容。 但遗憾的是只有不到 1% 的读者愿意捐款, 他们的付出帮助了 99% 的读者免费获取知识, 我们在此表示感谢。

                     

友情链接: 超理论坛 | ©小时科技 保留一切权利