进制、二进制

                     

贡献者: 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. 进制的转换

  

未完成:...

                     

© 小时科技 保留一切权利