admin管理员组

文章数量:815885

计算机基础之二进制、十进制、十六进制转换(上)

计算机基础之二进制、十进制、十六进制转换(上)

计数法与数据转换原理

背景知识:什么是计数法

人类历史上,不同的文明发展都遇到同样的问题,人类记录量时比如中文 二、三、四、五、六……,记录数字所使用的符号不可能有无限多个,但是数量却可以有无穷大,我们不能给每一个具体的数创建一个全新的符号(就算每个数一个符号,人也记不住)。

那么想要用有限的(很少的)符号来记录所有的数,人类就发明了计数法,比如我们小学就开始学习的十进制计数法。

十进制计数法就是用'0','1','2','3','4','5','6','7','8','9'十个数字来表示所有数的计数方法,其中引入了位的概念,十进制计数法,满十向前一位进一。

例如:

   9

+ 1

——

1 0

又例如

    9  9

+      1

————

   1  0

+ 9

————

1  0   0

同理,这种方法可以推广到其他进制的计数法依然成立:

二进制计数法,由'0'、'1'两个数字组成,满二向前一位进一

    1

+  1

——

1  0

十六进制计数法,由 '0' ,'1' ,'2' ,'3' ,'4' ,'5' ,'6' ,'7' ,'8' ,'9' ,'A' ,'B' ,'C' ,'D' ,'E' ,'F' 十六个数字组成,大家可能已经注意到,由于我们日常使用的阿拉伯数字只有0-9十个数字,数字符号不够十六个,所以我们拿英文字母的A-F来补充缺少的数字符号,理论上来讲,我们只是需要16个符号,不用'A'、'B'、'C',使用甲乙丙也是可以的,不过在整个行业中,大家都已经约定俗成的都是用英文字母来补齐缺少的数字符号。

这里有一个小的问题抛给大家思考一下,为什么我们日常生活中使用的是十进制?



回答刚才的问题,其实看一看小朋友学数数就知道了,小孩子在数数的时候和原始社会的人类行为是一致的,他们会掰着手指去数,因为我们一只手五个指头,两个手一共十个手指,所以数量多与十个手指就不够用了,因此就需要进位了。

这一点从罗马数字中表现的更为明显 Ⅰ、Ⅱ、Ⅲ、Ⅳ、Ⅴ、Ⅵ、Ⅶ、Ⅷ、Ⅸ、X,其中V表示五, Ⅳ是五减一也就是四,Ⅵ是五加一也就是六 。

据说玛雅人使用的是二十进制,那他们一定是把脚趾头也算上了,古巴比伦人的是60进制,他们肯定是很守时的。

毫无疑问,不管使用什么样的计数法,我们记录的物品的数量是不会变的,一堆苹果放在地上还是一堆,但罗马数字和阿拉伯数字用来表示苹果数量的符号却不一样。

为什么举例子要用“苹果”?这个我也不知道,是和图灵有关吗?还是和某个科技公司有关?算了,先不提苹果的事情了,免得有人怀疑我是某品牌的托。

 

不同进制如何换算

不论是二进制还是8进制又或者是十六进制,我们知道数字 1 的含义都是相同的,如果用来记录苹果的数量,他们都表示1个苹果


          十进制      二进制       八进制    十六进制

           1               1                1                1

+ 1      2             10                2                2 

+1       3             11                3                3

+1       4           100                4                4 

+1       5           101                5                5

+1       6           110                6                6

+1       7           111                7                7

+1       8         1000              10               8

+1       9         1001               11              9

+1      10        1010               12              A

+1       11        1011              13              B

+1       12       1100              14              C

+1       13       1101              15              D

+1       14       1110              16              E

+1       15       1111               17              F

+1       16      10000             20             10


仔细看上面这张表格,我把分别把十进制 二进制 八进制 十六进制相等的值列出来,这就是一个最简单的数学证明过程,由于每一列的1都是相等的,十进制的1+1等于‘2’,二进制的1+1满二进一等于‘10’,因此由于1在各种计数法中都是相等的,因此1+1的值必然也相等,因此十进制的 ‘2’ 这个符号所代表的数值 和二进制的 ‘10’ 这个符号所代表的值也必然相等。

同样,十进制的2+1等于  ‘3’ ,二进制的10+1等于 ‘11’,那么十进制的 ‘3‘ 这个符号和二进制的 ’11’ 这个符号所代表的值相等,

同理,上面表格中的各种进制转换都可以用这种方法进行推导从而得到相应的结果。

 我们用一个简单的方法来理解整数在不同计数法间的转换方法,可要是遇到了小数又该怎么办呢?

那么下一篇,我们就来看一下小数换算的推导方法,以及快速计算各种计数法相互转换的技巧。

 

 

本文标签: 计算机基础之二进制十进制十六进制转换(上)