- 计算机应用基础
- 孙利娟 王戈 赵杰峰主编
- 3338字
- 2021-11-03 13:07:57
1.2 计算机中数据的表示、存储与处理
1.2.1 数据与信息
数据是对客观事物的符号表示,数值、文字、语言、图形、图像等都是不同形式的数据。计算机科学中的信息通常被认为是能够用计算机处理的有意义的内容或消息,它们以数据的形式出现。
1.2.2 计算机中的数据
计算机可以代替人工对信息进行加工处理,它既能够处理数字信息和文字信息,也可以处理图形、图像、声音等信息。一切信息在计算机内部都能够用0和1两个数字组成的数字序列表示(即二进制),而我们日常使用的是十进制数,因此,十进制的数在计算机内需要进行转换处理。
二进制只有“0”和“1”两个数,相对十进制而言,二进制不但运算简单、易于物理实现、通用性强,更重要的优点是所占用的空间和所消耗的能量小得多,而且其可靠性大大提高。计算机内部均用二进制数表示各种信息,但计算机与外部交往仍采用人们熟悉和便于阅读的形式,如十进制数据、文字显示和图形描述等。其间的转换,则由计算机系统的硬件和软件来实现。各类数据在计算机中的转换过程如图1-1所示。
图1-1 各类数据在计算机中的转换过程
用若干数位(由数码表示)的组合去表示一个数,各个数位之间是什么关系,即逢“几”进位,这就是进位计数制的问题,也就是数制问题。数制,即进位计数制,是人们利用数字符号按进位原则进行数据大小计算的方法,通常是以十进制来进行计算的。另外,还有二进制、八进制和十六进制等。
1.2.2.1 数值型数据
1.数制
按进位原则进行计数称为进位计数制,简称“数制”。在日常生活中除了经常用到的逢十进一的十进制计数方法外,还有许多非十进制的计数方法,如时间为逢六十进一(60秒为1分钟,60分钟为1小时)的六十进制;1年有12个月为十二进制等。
计算机系统中采用二进制计数,因为“0”和“1”这两种状态恰好可以由电脉冲的“关”状态表示(低位)“0”,“开”状态表示(高位)“1”,可以使计算机数字电路设计简单、运算简单、工作可靠、逻辑性强。
无论哪种数制都有共同的“逢N进一”计数运算规律和“位权表示法”特点。N是指数制中所需要的数字字符的总个数,称为基数,例如十进制的基数是10(数字字符的个数是十个),二进制的基数是2(数字字符的个数是0、1两个)等。数字的值与它处在的位置是确定的,这个固定的位置上的值称为位权,例如十进制数53.4,数字5位于十位上,它代表5×101=50,即5所处的位置具有101权(位权);3位于个位上,代表3×100=3,即3所处的位置具有100权(位权);4代表4×10-1=0.4。“位权表示法”的特点是用来进行数制间的转换。
2.数制间的转换和运算
各数制中位权的值是基数的若干次幂。因此,用任何一种数制表示的数都可以写成按位权展开的多项式之和。设一个基数为D的数值K,K=(Kn-1,Kn-2,…,K1,K0,K-1,…,K-m),则K的展开为:
K=Kn×Dn-1+Kn-1×Dn-2+…+K1×D0+K-1×D-1+…+K-m×D-m
对于二进制、十进制和十六进制,其基数D分别为2、10、16。
(1)十进制与二进制、八进制、十六进制相互转换
算法:将十进制整数部分除以r取余,将十进制小数部分乘以r取整,将两部分合并。下面举例说明算法。
例:将十进制数(347.625)10转化为二进制数。
解:
步骤一:转换整数部分
Mod(347/2)=1
Mod(173/2)=1
Mod(86/2)=0
Mod(43/2)=1
Mod(21/2)=1
Mod(10/2)=0
Mod(5/2)=1
Mod(2/2)=0
余1
(347)10=(101011011)2
步骤二:将小数部分转化
0.625*2=1.25 1
0.25*2=0.5 0
0.5*2=1 1
(0.625)10=(101)2
得:(347.625)10=(101011011.101)2
(2)最基本的数制对应关系
二进制、八进制、十进制和十六进制的对应关系如表1-1所示。
表1-1 二进制、八进制、十进制和十六进制的对应关系
(3)二进制的运算法则
二进制加法的进位法则是“逢二进一”:0+0=0 1+0=1 0+1=1 1+1=0(进位)
二进制减法的进位法则是“借一为二”:0-0=0 1-0=1 1-1=0 0-1=1(借位)
二进制乘法规则:0*0=0 1*0=0 0*1=0 1*1=1
二进制除法即是乘法的逆运算,类似十进制除法。
3.不同进制数的特点
(1)十进制数:十进制的数字符号个数(数码)有十个:0、1、2、3、…、8、9,其基数等于10。对于一个4位的十进制数1234,可以展开为:1×103+2×102+3×101+4×100
按上述规律,如有一个n位十进制整数,可以表示为:a1×10n-1+a2×10n-2+…+an×100
(2)二进制数:二进制的数码只有两个:0、1,其基数等于2;二进制数是逢二进一、借一当二。从上可知二进制数码少,只有“0”和“1”两种状态,刚好和计算机中的逻辑电路的状态相符。采用二进制数使得电路简单、运算简便、工作可靠、逻辑性强。若用十进制数,则要找一种具有十个稳定状态的电子元器件,这是相当困难的。
(3)十六进制数:十六进制的数码有十六个:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。它的运算规则是逢十六进一、借一当十六。
1.2.2.2 字符型数据
1.ASCII
ASCII(American Standard Code for Information Interchange,美国信息互换标准代码)是基于罗马字母表的一套计算机编码系统,它主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO 646。ASCII码表如表1-2所示。
表2 ASCII码表
2.汉字编码
编码是指计算机中将信息用规定的代码来表示,用二进制数表示的信息称为二进制编码。当人们使用计算机时,从键盘输入的各种字符由计算机自动转换后,以二进制编码形式存放在计算机中。如键盘中的空格键(Space)就对应着一组二进制数,这组二进制数就是空格键的代码。
计算机在处理汉字信息时也要将其转换为二进制数,这就需要对汉字进行编码。
3.汉字信息交换码
汉字信息交换码简称交换码,也叫国标码,规定了7445个字符编码,其中有682个非汉字图形符和6763个汉字的代码。有一级常用字3755个,二级常用字3008个。两个字节存储一个国标码。国标码的编码范围2121H~7E7EH。区位码和国标码之间的转换方法是将一个汉字的十进制区号和十进制位号分别转换成十六进制数,然后再分别加上20H,就成为此汉字的国标码:
汉字国标码=区号(十六进制数)+20H位号(十六进制数)+20H
而得到汉字的国标码之后,我们就可以使用以下公式计算汉字的机内码:
汉字机内码=汉字国标码+8080H
(1)汉字机内码:汉字机内码是在计算机内部对汉字进行存储、处理的汉字代码,它能满足存储、处理和传输的要求。一个汉字输入计算机后就转换为内码。内码需要两个字节存储,每个字节以最高位置“1”作为内码的标识。
(2)汉字字型码:汉字字型码也叫字模或汉字输出码。在计算机中,8个二进制位组成一个字节,它是度量空间的基本单位,可见一个16×16点阵的字型码需要16×16/8=32字节存储空间。。
(3)汉字地址码:汉字地址码是指汉字字库中存储汉字字型信息的逻辑地址码。它与汉字机内码有着简单的对应关系,以简化汉字机内码到汉字地址码的转换。
(4)各种汉字代码之间的关系:汉字的输入、处理和输出的过程,实际上是汉字的各种代码之间的转换过程。各种汉字代码之间的关系如图1-2所示。
图1-2 各种汉字代码之间的关系
1.2.3 计算机中数据的单位
在计算机内部,数据都是以二进制数的形式存储和运算的。计算机数据的表示经常用到以下几个概念。
1.位
二进制数据中的一个位(bit)简写为b,音译为比特,是计算机存储数据的最小单位。一个二进制位只能表示0或1两种状态中的一种,要表示更多的信息,就要把多个位组合成一个整体,一般以8个二进制位组成一个基本单位。
2.字节
字节是计算机数据处理的最基本单位,并主要以字节为单位解释信息。字节(Byte)简记为B,规定一个字节为8位,即1B=8bit。每个字节由8个二进制位组成。一般情况下,一个ASCII码占用一个字节,一个汉字国际码占用两个字节。为了便于衡量存储器的大小,统一以字节为单位。
千字节 1KB=1024B
兆字节 1MB=1024KB
吉字节 1GB=1024MB
太字节 1TB=1024GB
3.字(字长)
一个字通常由一个或若干个字节组成。字(word)是计算机进行数据处理时,一次存取、加工和传送的数据长度,所以一般也叫做字长。由于字长是计算机一次所能处理信息的实际位数,所以它决定了计算机数据处理的速度,是衡量计算机性能的一个重要指标,字长越长,性能越好。
计算机型号不同,其字长也是不同的,常用的字长有8位、16位、32位和64位。一般情况下,IBM PC/XT 的字长为8位,80286微机字长为16位,80386/80486微机字长为32位,Pentium系列微机字长为64位。
如何表示正负和大小,在计算机中采用什么计数制是学习计算机的一个重要问题。数据是计算机处理的对象,在计算机内部,各种信息都必须通过数字化编码后才能进行存储和处理。由于技术原因,计算机内部一律采用二进制,而人们在编程中经常使用十进制,有时为了方便还采用八进制和十六进制。理解不同计数制及其相互转换是非常重要的。