引言:
数字系统(Digit System),即表示数量的符号。数字系统对于期望或正在从事计算机行业的人来说,是必须了解的。通过这片文章我们来了解一下数字系统,以及几个计算机中常用的数制。
通过阅读这片文章,你将了解到:
(1) 了解位置化数字系统与非位置化数字系统。
(2) 数字系统的基本概念。
(3) 了解几个在计算机表示中常用的数制,以及为什么更他们受欢迎。
(4) 描述计算机表示中常用的数制。
(5) 所涉及到的数制与其他数制间的转换。
以下的讨论中,我们假定你具备小学数学代数的所有知识。如果你并不了解小学数学代数的知识,我们推荐您先阅读以下几本推荐书目 :
《义务教育课程标准实验教科书 数学 一~六年级》 人民教育出版社
位置化数字系统:
在位置化数字系统中,每一个符号(数字)根据他们的位置,都有不同的大小(或者说权重)。
例如:在256.3(十进制)中,“6”表示“6”,“5”表示“50”,“2”表示“200”,“3”表示3/10(十分之三)。
因此可以归纳出:在位置化数字系统中,每一位表示的大小,是这一位的符号值乘数制基底与位的幂。(我们将稍后讨论基底)
256.3 = 2 × 10^2 + 5 × 10^1 + 6 × 10^0 + 3 × 10^-1。
其中,10是这个数字的基底,因为我们例举的256.3是十进制的(十进制的基底为10)。
可见我们正常时使用的数字都是使用的位置化数字系统。尽管这样,一些非位置化的数字系统也存在在生活中,但他们并不常见,因此我们将在本章的最后讨论非位置化数字系统。
十进制系统:
十进制系统(Decimal,这个单词源自于拉丁词根decem(十)),是我们日常生活中最常用的数字系统,他也是位置化数字系统。在十进制系统中,基底 b=10。
符号集S = {0,1,2,3,4,5,6,7,8,9}。由于人类有十个手指,所以我们一直以来采用了十进制作为计数方法。在上一节通过例子我们简单的了解了十进制数的表示方法,可以通过位置量来更形象的表示十进制数。例如:
10^2 10^1 10^0 10^-1
256.3 = 2 × 100 + 5 × 10 + 6 × 1 + 3 × 0.1 = 256.3
二进制系统:
二进制系统(Binary源于拉丁词根bini(二))是计算机所能识别的系统,因为电路有两种状态:开和关(或是高低电平)。在二进制系统中,基底b = 2,S = {0,1}
,二进制系统中的符号常被成为二进制数码或位。在逻辑电路中,用开(高电平)表示1,关(低电平)表示0。
由于二进制系统也是位置化系统,因此它可以这样表示:
101.11 = 1 × 2^2 + 0 × 2^1 + 0 × 2^0 + 1 × 2^-1 + 1*2^-2
注意在二进制系统中不能出现2,因为二进制系统中的符号仅有0,1。上面只是为了便于理解。根据上面的方法,我们可以将二进制数字转换为我们更习惯的十进制:
101.11 = 1 × 2^2 + 0 × 2^1 + 0 × 2^0 + 1 × 2^-1 + 1*2^-2
= 4 + 0 + 1 + 0.5 + 0.25
= 5.75(十进制)
十六进制系统:
表示一串二进制数字并不容易,因为它需要很长的一段数字来表示,因此我们需要用一种更好的方式来表示每个二进制数字。十六进制系统(Hexadecimal,hex源自希腊词根hex(六),decem源自拉丁词根(十))正是解决这个问题的方案。在我们讲到数制间的转换时,你将会明白为什么十六进制表示二进制非常方便。在十六进制系统中,基底b = 16,符号集 S = {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F},由于9之后没有更多的符号,所以就用字母来表示。注意A,B,C,D,E,F分别相当于十进制中的10,11,12,13,14,15。由于十六进制数也是位置化系统,因此它可以这样表示:
1FE = 1 × 16^2 + 15 × 16^1 + 14 × 16^0
注意因为F和E分别相当于十进制系统中的15和14,所以在式中我们将它们转换为十进制表示来便于理解。
提示:对于十六进制数15和14,他们对应的十进制值分别是:21,20。
很明显我们可以通过上面的计算来将一个十六进制数转换为十进制:
1FE = 1 × 16^2 + 15 × 16^1 + 14 × 16^0
= 256 + 240 + 14
= 510(十进制)
同样我们再看一下提示中的一个十六进制数转换为十进制数,我们以15为例:
15 = 1 × 16^1 + 5 × 16^0
= 16 + 5
= 21