十的替代品
10是非常重要的数字。因为大多数人的手指和脚趾都是10,因为手指非常便于计数,于是人类适应了10为基数的数字系统。
10可以代表这么多只鸭子。
之所有指这么多只鸭子在于这些鸭子的数目与我们的手指数目相同。
八进制
如果人类的手指数目不是10根,那么,10就会有另外的含义。
数字10可以代表这么多只鸭子:
或者这么多只:
甚至可以是这么多只鸭子:
如果人类像卡通人物一样每只手有4个手指,那么将建立一个八进制的数字系统。
10则代表卡通人物手指的数量。
如果继续用脚趾数下去的话,就是这样:
以8为基础而建立的数字系统,我们就不再需要这个符号。
而且这样一个符号也不再需要。
八进制中有好几个好整数,如100(EIGHT)、200(EIGHT)和400(EIGHT)。类似于十进制的100(TEN)。在十进制中100(TEN)表示10(TEN)乘以10(TEN)。在八进制中100(EIGHT)表示10(EIGHT)乘以10(EIGHT)或者8(TEN)乘以8(TEN),即64(TEN)。
注意这些好整数100(EIGHT)、200(EIGHT)、400(EIGHT)在十进制中分别与64(TEN)、128(TEN)、400(TEN)相等,他们全是2的整数次幂。
下表是2的整数次幂的十进制及其对应的八进制的表示形式。
观察最右列,非常有规律。
在结构上,八进制数字系统每个位代表的值是该位数字乘以8的结果。
3725就被拆分成
3725(EIGHT) = 3 x 8^3 +
7 x 8^2 +
2 x 8^1 +
5 x 8^0
运算法则也与十进制相同。
四进制
通过下图可以看出四进制的每一位都是跟4的某个整数次幂相对应。
四进制31232可以写成如下形式:
3123(FOUR) = 3 x 4^3 +
1 x 4^2 +
2 x 4^1 +
3 x 4^0
二进制
以2为基数的数字系统,只有2个数,则两个数分别是0和1.
任何一个以1开头而后面全是0的二进制数一定都是2的整数次幂。幂指数就等于这个二进制数中0的个数。
下表说明以上这条规则。
为了简明、更便捷地将二进制转换为十进制,用下面的模版转换更加方便。
将二进制数填入上面一行的表格,每个格子一位。将每位表格上的数字与下面的乘数相乘,得到的结果记录在下一行饿的格子中,再将下一行表格中的数字相加,得到追踪结果。
将十进制转换为二进制就没有那么直接了。下面是一个能够将0~255范围内的十进制转换为二进制数的模版。
这个转换比看起来麻烦一些。首先先将整个十进制数填入到上面最左端的表格,然后用第一个除数去除这个数,所得到的商填入正下方的表格,余数填入右边的格子,再用第一个余数继续上述步骤。按照模版的顺序继续进行下去。
二进制的优势在于他的加法非常简单,乘法比加法更加简单明了。
注意二进制数字一列中自上而下是怎样的规律交替的。
- 最右边的一列一直在0和1之间交替。
- 右数第二列是在每两个0和两个1之间相互交替。
- 下一列是在每四个0和每四个1之间相互交替。
- 再下一列是在每八个0和每八个1之间相互交替。
一个有趣的现象是只要重复则16个数字并且在每个数字前面加一个1就很容易写出后面16个数字。
只要一个二进制数位的值由1变到0,紧挨着的高位数字也会发生变化,不是由0到1就是由1到0.
二进制系统在算术与电子计数之间架起了桥梁
电线可以代表二进制数字。如果有电流流过这根电线就代表二进制数字1,如果没有,则代表二进制数字0.
开关可以表示二进制数字。如果开关接通(或闭合)就代表二进制数字1,如果开关断开(或断开),则代表二进制数0.
灯泡可以代表二进制数字。如果灯泡点亮,就代表二进制数字1,如果没点亮,则代表二进制数字0.
二进制数与计算机之间有着紧密的联系。
1948年美国数学家John Wilder Turkey用选用”bit”这个词来代表二进制数(binary digit)。