二进制数及其他
界将不会这么多姿多彩。
那么,单纯的 0 和 1 如何表示世间的万物呢?这里要讲到一个词:代码。代码,从字面意思来看, 就是代替的码字,即我们找一组二进制数来代替,代替谁呢?代替世间的万物。到这里可能有人会有疑问 了?既然是代替的,必然不是真的,有什么用呢?自然有用,要是没用的话我们不会随时随地的使用。其实 我们就是生活在一个代码的世界里,如我们的名字就是一个代码,用汉字给我们每个人的一个代码,代表一 个个体。在学校里,每个学生都有一个学号,而这个学号就是一个代码,用一组十进制数来代表一个学生。 甚至我们所说的课桌,操场等等名词都是代码,用汉字来代表某个物体或者某种意义。代码到底有什么好处 呢?方便于我们的沟通和交流。还是以我们的名字为例来说。如果一个人叫“张三”,那么我们有事情要找 他,那么就喊“张三”,叫张三的人就答应了,于是你可以跟他交流了。合同上要双方签字,而就是签的名 字,合同签完后就可以存档了,不管经过多久,其他人看到这个签字,就知道这是经过双方本人认可了的, 而不需要双方两个大活人亲自告诉你说,这个合同我认可了的,因为名字就代表了其本人。如果我们不用代 码,那么一个合同文本上必须有两个人站在那里,证明合同双方都同意的,这是一件和荒唐的事情,文件柜 里站着两个大活人不是很滑稽和不可能的事情吗?所以,我们使用代码。注意的是代码就是代码,不是人本 身,你的名字不等于你这个人本身,它仅仅代表你这个人,我们不能说几个汉字和活生生的人是一样的吧。 每个人都有血有肉,有情感,但是汉字只是一些笔迹,不会有血肉。
代码,有任意性,就是我们可以用任何的东西来代表某个含义,如汉字里的“桌子”和英语里 的“desk“都是代表了同一种东西。这也表示这我们可以用随意的什么来代表我们每个人,我们的名字是汉 字,两个或者三个或者四个汉字,当然,我们也可以用数字来代表我们每个人,比如监狱里每个囚犯都有一 个编号,这个编号就是用十进制数来给每个人的代码。虽然代码有随意性,但是我们一般不会随意的进行编 写代码,而是按照某种规律来编码,因为有规律的代码使我们的维护更加方便。我们每个人的身份证就是一 个代码,是很有规律的,不知道有没有注意到这个规律。
代码就是用码字来代替,我们编写代码的过程叫做编码,有时候也称代码为编码。我们可以用 0 和 1
的二进制数按照某种规律排列起来代表任何一个事物,下面讲几种常用的代码。 二——十进制代码
二——十进制代码就是用二进制数对十进制数编写代码,也就是说用 0 和 1 来给十进制数的 10 个数
码 0~9 进行编码,也称为 BCD 码。接下来我们就看代码是如何进行编写的,需要多少位二进制数来进行编 码。表 3 列举了 1~4 位二进制数所能进行的编码个数,从中我们可以 知道,最少需要 4 位二进制数来进行编码。
表 3 1~4 位二进制数所能进行的编码个数
位数 | 1 位二进制数 | 2 位二进制数 | 3 位二进制数 | 4 位二进制数 |
代码 | 0 1 | 00 01 10 11 | 000 001 010 011 100 101 110 111 | 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 |
代码数目 | 2 21 | 4 2 2 | 8 2 3 | 16 2 4 |
从表 3 中可以看到,有 N 位二进制数,那么代码的数量就是 2 N ,我们这里有 0~9 共计 10 个数,需要
多少位呢?3 位二进制数有 8 个代码,10 个数不够分,4 位二进制数有 16 个代码,还多了 6 个呢,我们怎 么办?我们可以想,如果有 10 个人来你家作客,如果你恰好有 10 张椅子还算好说,可是如果我们的椅子 不是恰好 10 把呢,你是提供 8 把椅子让 2 个客人站着还是提供 16 把椅子让椅子有空余呢?自然是提供 16 把椅子。多出来的 6 把椅子就让他空着吧。
我们在前面讲了,代码的编写具有随意性,也就是说你可以随意的编写你自己的代码,我们有 16 个 代码,给 10 个数进行编码,那么有多少种编码的方案呢?数学上问题就是从 16 个数里面取出 10 个数进行 全排列,计算的结果是大约有 10 亿种。这 10 亿种方案都是二——十进制代码,不过我们不可能用那么 多,代码的编写虽然有随意性,但我们进行编码不是自己一个人用的,还需要和别人交流,那么编写一个有 规律的和通用性的代码是必须的。理论上有无限种可能,但实际我们只使用其中的几种。那么我们常用的都 是哪种代码呢?最常用的就是 8421BCD 码了。这种编码的每位都有一个权值,恰好与自然二进制数的前
10 个数据相同,即用 0000(0)~1001(
二进制数 相关文章:
- 电路换算上的二进制数(12-22)
- 12位串行A/D转换器MAX187的应用(10-06)
- AGC中频放大器设计(下)(10-07)
- 低功耗、3V工作电压、精度0.05% 的A/D变换器(10-09)
- PIC16C5X单片机睡眠状态的键唤醒方法(11-16)
- 用简化方法对高可用性系统中的电源进行数字化管理(10-02)