p>摘要:计算机信息的表示与编码一直是困扰初学者的一个难题,通过对计算机信息的表示、信息的单位、信息的编码这三部分的深入探讨和讲解,让初学者对计算机内部原理有了一个启发性的了解,为进一步学习计算机知识打下坚实基础。
关键词:信息表示;信息编码;信息单位;内部原理
引言
随着计算机的流行和普及,各种类型的微型计算设备(pad、surface)已经深入到各家各户,越来越多的人加入到学习计算机知识、研究计算机原理的队伍中来。学习计算机知识绝不仅仅是学习类似office那样的简单操作,而是需要研究计算机原理和软硬件等知识。目前计算机的研究方向已经十分细化,从大的方向上说,比如软件、硬件、网络、人工智能等等都是目前热门的研究方向。以软件为例,计算机的工作是通过软件控制的,而软件是用程序编写的,程序是指令的集合,而指令就是计算机可以识别的命令,这些命令都是计算机中的控制信息和数据信息。归根结底,我们首先要理解信息在计算机中是如何存储和表示的。
1、信息的表示
计算机内部的信息可以分成两大类:数据信息和控制信息。数据信息是计算机程序加工的对象,包括数值信息(定点数和浮点数等)和非数值信息(图像和声音等)。控制信息是一些控制计算机操作的指令。无论是数据信息还是控制信息,在计算机中都是用二进制数据表示的。也可以说计算机中的数字系统是二进制系统。这种二进制表示法和我们平时习惯使用的十进制大不相同。二进制里面的数字只能由0和1构成,进位原则是逢二进一。为什么在计算机中用二进制来表示数据呢?因为电路中最稳定的状态就是两种状态,所以用着两种状态分别表示0和1最为恰当。因此在计算机中用二进制表示数据比较容易物理实现。另外二进制的数字运算更为简单,因为只有两个数字0和1。当然,二进制对于人来说可读性比较差,因此在计算机高级语言的书写中并不直接用二进制,而是要把源程序编译以后得到二进制的机器语言。
2、信息的单位
上面已经讲到,计算机中所有的信息都是用二进制来表示的,虽然有时在编程的时候用八进制或者十六进制表示一些信息,但是在计算机中都会将这些进制数转化成二进制表示,只是在展现的时候出现多样化的信息。计算机中信息的单位和二进制也息息相关。信息存储的最小单位就是位,一个位就是一个二进制位(0或1),用小写字母b表示。由位可以组成字节,在计算机中一个字节是由8个二进制位组成的,用大写字母B表示。在计算机中表示文件大小或内存大小的单位一般为KB,表示千字节。1KB=1024B,还有更大的单位兆字节即MB,1MB=1024K。更大的还有吉字节GB,以此类推,1GB=1024M。
3、信息的编码表示
在计算机中的数据虽然是用二进制表示的,但绝不是仅仅将数据化为二进制数这么简单,单就数字和运算来说,首先要对正号和负号做出不同的表示,这里正号和负号恰好可以用一位二进制数0和1来表示。这里我们用0代表正号,1代表负号。比如十进制25就可以表示为011001,而-25则可以表示为111001,可以看出,只有第一位不同,后面的相同。对于相同长度的二进制数,在计算机中如果仅第一位不同,后面的所有位都相同,则可以断定这两个数符号不同,绝对值相同。在计算机中当需要对两个数进行加减运算的时候,符号位0或1要参与运算,这就带来了一些麻烦,这里符号位要单独处理才行。比如两个数都是正数(符号位为0)则结果的符号位也为0,两个数都是负数(符号位为1)则结果的符号位也为1。倘若两个数符号位相反即一个是正数,一个是负数的话,则需要比较两个数的绝对值大小才能判断结果的正负。这些判定用计算机硬件实现是及其复杂的。另外还有一个方面就是用带符号的二进制表示零会有两种结果,即0000…0和1000…0,因为0可以看成是+0和-0,因此,在计算机中的信息不能够直接用二进制表示。人们需要找出一种更好的编码方法,使得运算起来能够将符号位一起运算还能得到正确的结果,这就引入了计算机之信息的存储形式:补码存储。如何求出一个数字的补码在许多计算机的教科书中都给与了充分的阐述,这里我们主要讲解一下补码的含义。正数的补码还是原来的加上符号的二进制形式(也叫原码)。负数的补码则要通过“模数的概念来理解”。我们知道,对于钟表,12是一个循环,过了12就又从1开始数了。如果我们的手表上指的是8点,而标准时间是6点,我们就可以向后拨两个格,也可以向前拨10个格,都可以达到同样的效果。也就是说对于模数12来说,2和10是互补的,一个数减去2和一个数加上10是一样的,一个数减去10和一个数加上2也是一样的。受此启发,在计算机中,如果A-B,那么我们可以把-B转化成补码,然后可以用A的补码加上B的补码来完成操作。限于篇幅,不再举例。用补码表示计算机信息有很多好处,首先是0的表示唯一了,不存在正零和负零之分;其次是符号位可以正常参与运算,最后仍然能够得到正确的结果,无需单独运算;还有就是用补码进行运算时,减法运算可以转换为加法运算。如果A-B,可以理解为A+(-B),简化了硬件设计的难度。
4、总结与展望
计算机中信息的表示和编码是学习理解计算机工作原理的基础,也是计算机初学者学习计算机的第一道拦路虎,许多计算机毕业生直到本科毕业对于信息的编码表示也是一知半解,影响到了他们对于计算机理论的后续学习。本文通俗地讲解了计算机中数据的表示方法和编码原理,并用例子加以形象说明,初学者深刻理解这些内容对于进一步学习计算机理论知识有着莫大的好处。
作者:曹挚 单位:徐州幼儿师范高等专科学校