概述

计算机的应用领域及其广泛,不论在哪一领域,计算机本质上都是处理信息的工具,要了解计算机的工作原理,首先要明白计算机中信息的表示和存储方法。计算机中的信息类型很多,总体上可分为两大类:一类是计算机处理的对象,即数据信息;一类是用于控制计算机工作的信息,即指令。

其中数据信息又可以分为数值型数据和非数值型数据两类。数值型数据有确定的值,并可以在数轴上有对应的点,数值型数据的表示主要涉及以下几个问题:选用何种进位方式(如十进制、二进制),机器中如何表示一个带有符号的数(负数如何表示),如何表示小数点的位置,如何表示数值运算的基本实现原理等。非数值型数据信息如图片、视频、音频文件中存储的数据,都是以某种编码方式存储起来的,用于描述某种客观事物如声音、图像等的数据信息。除此之外,还有一种数据是我们常用的,就是用于存储和表达人类语言的字符。在计算机编程技术中,例如C语言,即把字符编码当做一个整数来对待,甚至可以参与整数的四则运算。

关于数值型数据,首先解决的问题是数据在计算机内部的存储。无论何种信息,在计算机内部的形式实质上都是一致的,均是0和1组成的各种编码:数据在计算机中的存储和处理方式和人类的大脑对数据的存储和处理方式有非常大的差别。人类大脑记录数值数据采用的是十进制的方式(即逢十进一)。事实上,世界不同角落的人类祖先计数时使用的计数方式各有不同,除了十进制之外,还有用五进制、二十进制等方式。其中十进制是使用最为普遍的一种进位制。而计算机中使用一种办法来表示某一位数是0~9之间的数字是非常困难的。然而,可以找到一种很简单的方法来表示某一位数是0或1之间的某一数字:高电平表示1,低电平表示0,抑或相反,即二进制的表示。在计算机中,我们使用二进制方式实现了不同类型的数值数据的存储和处理。使用二进制来编码和处理计算机中不同类型的数据。

解决了计算机内部数据存储的问题后,会产生另外一个问题:程序员进行程序编写的时候,很多地方就需要对二进制数进行处理。然而,十进制更符合我们的习惯,却很难与计算机结构直接关联。对于二进制数,虽然计算机可以处理,但是人对二进制的处理是很费力的。有没有办法可以使程序员能够方便的进行数据处理的程序编码?我们可以在二进制和十进制之间在引入十六进制数或八进制数。十六进制数或八进制数相比二进制数,更方便程序员对数据的处理,又可以很方便的转换为二进制数。所以引入十六进制或八进制数作为过渡,能较好的解决人与计算机之间的沟通问题。

计算机的核心功能是具有运算能力,不同类型的数值数据在计算机中的四则运算的实现也是重点,包括定点数和浮点数的加减乘除四则远算的实现。

我们知道,数据在传输的过程中,是存在一定的误码率的;存储过程中,由于存储介质的损坏等原因,也不能保证所有数据读出时是完全正确的。这就需要一种手段,检查我们拿到的数据是否正确。这就是数据校验。通俗的说,数据校验就是为保证数据的完整性,用一种指定的算法对原始数据计算出一个校验值,校验值会附加在原始数据前或后,一并交给数据的接收方。接收方用同样的算法计算一次校验值,如果和随数据提供的校验值一样,说明数据是完整的;否则,说明数据出现错误。