任务1.1 认识数据的存储与表示方法

在计算机内部无论是在存储过程、处理过程、传输过程中的数据,还是用户数据、各种指令等,均使用由0、1组成的二进制数,所以了解二进制数的概念、运算、数制转换及二进制编码对于数据恢复是十分重要的。本节任务要求掌握常用数制及其转换规则、二进制数据的算术及逻辑运算,了解数值、英文字符和汉字的编码规则。

1.1.1 数据的存储

随着技术的发展,存储是必不可少的,文字资料、图像、视频、音频等都需要存储。硬盘会以0和1组成的二进制形式存储各种数据,随时进行数据的写入或读取。硬盘如何存储数据呢?

1.机械硬盘的组成

硬盘是在硬质盘片(一般是铝合金)上涂敷薄薄的一层铁磁性材料,硬盘分为机械硬盘和固态硬盘。

机械硬盘内部结构由浮动磁头组件(磁头、磁头臂等)、磁头驱动机构(音圈电动机、永磁铁等)、磁盘、主轴驱动机构及附件等组成,如图1-1所示。

2.机械硬盘的逻辑结构

传统的磁盘在逻辑上划分为磁盘、柱面及扇区,结构如图1-2所示。磁盘在出厂前,厂家会对盘片进行格式化,盘片被划分成很多同心圆,这些同心圆就是磁道(Track)。现在的大硬盘每一个盘面上都有上万个磁道,每个磁道都有一个编号,在逻辑上磁道从外向内自0开始顺序编号。柱面是指各个盘面上编号相同的磁道构成的整体,如图1-2所示。在逻辑上,柱面的编号和磁道的编号相统一,从外向内自0开始顺序编号。

图1-1 机械硬盘内部结构

每个磁道都被划分成一段段的圆弧,每段圆弧是一个扇区,如图1-3所示。在逻辑上扇区从“1”开始编号,扇区是磁盘存储的最小单位,一般是512字节。

图1-2 磁盘逻辑结构

图1-3 硬盘的扇区划分

图1-3 硬盘的扇区划分

在计算机系统BIOS中断13H的入口参数中,扇区地址占用寄存器中的6位,其值为1H~3FH,所以逻辑上扇区编号为1~63,即每个磁道包含63个扇区。

硬盘中有一个或多个盘片,每个盘片有两个盘面,每个盘面有各自的编号,逻辑上从上至下自“0”顺序编号。盘片用于来存储数据,存储工作由磁头来完成。每个盘面都有一个对应的磁头,故逻辑盘面号也可称为逻辑磁头号。在计算机系统BIOS中断13H的入口参数中,磁盘地址占用寄存器中的8位,其值为0H~FEH,所以磁头号为0~254,故每个磁盘逻辑上包含255个磁头。

1.1.2 数据的表示方法

计算机只能识别二进制数,而需要计算机处理的数(如无符号数、有符号数等)种类繁多,怎么办?计算机中采用各种形式的编码很好地解决了数及字符等信息的表示问题。

数据可分为两大类:数值数据和非数值数据。前者表示数量的多少;后者表示字符、汉字、图形、图像、声音等,又称符号数据。在计算机内,无论哪一种数据,都以二进制形式表示。

1.数据的单位

计算机中数据的常用单位有位、字节和字。

(1)位(bit)

计算机中最小的数据单位是二进制的一个数位,简称为位(英文为bit,读音为比特)。计算机中最直接、最基本的操作就是对二进制位的操作。

(2)字节(Byte)

字节(Byte)简写为B,是计算机中用来表示存储空间大小的基本容量单位。

作为一个8位二进制数,一个字节的取值范围为00000000~11111111,代表0~255的正数,也可以表示-128~127范围之内的正、负数。总之,一个特定的字节可以代表28(256)种不同事物中的一个。

与字节有关的常用换算单位如下。

1B=8bit;1KB=1024B=210B;1MB=1024KB=210KB=220B;

1 EB=210PB=220TB=230GB=240MB。

位与字节区别:位是计算机中的最小数据单位,字节是计算机中的基本信息单位。

(3)字(Word)

在计算机中作为一个整体被存取、传送、处理的二进制数字符串叫作一个“字”或“单元”。每个字中二进制位数的长度,称为字长。

一个字由若干个字节组成,不同的计算机系统的字长是不同的,常见的有8位、16位、32位及64位等。字长越长,计算机一次处理的信息位就越多,精度就越高。字长是计算机性能的一个重要指标。目前大部分计算机都是64位的。

字为16位二进制数,即1Word=2Byte=16bit;把32位二进制数称为双字(Double Word),即两个字。

2.表示方法

在选择计算机数值的表示方式时,需要考虑以下几个因素:①要表示的数的类型(小数、整数、实数和复数);②可能遇到的数值范围;③数值精确度;④数据存储和处理所需要的硬件代价。

数值的表示方法有定点数、浮点数、原码、补码、反码、移码等。

计算机处理的数值数据多数带有小数。小数点在计算机中通常有两种表示方法:一种是约定所有数值数据的小数点隐含在某一个固定位置上,称为定点表示法,简称定点数;另一种是小数点位置可以浮动,称为浮点表示法,简称浮点数。

定点数通常只用于表示纯整数或纯小数,而对于既有整数部分又有小数部分的数,由于其小数点的位置不固定,一般用浮点数表示。

二进制数跟十进制数一样也有正负之分。在计算机中,常采用数的符号和数值一起编码的方法来表示数据。常用的有原码、反码、补码、移码等。

计算机中的数据除了处理各种数值数据外,还要处理大量非数值的数据,如英文字母、汉字、图形等。

国际通用的字符有十进制数字符号0~9,大小写英文字母,各种运算符、标点符号等,数量总计不超过128个。这些字符在计算机中以二进制形式来表示,称为字符的二进制编码。

因为需要编码的字符不超过128个,所以用7位二进制数就可以进行编码,但计算机是以字节为单位进行存储,故字符的二进制编码一般占8个二进制位。用ASCII表示的字符称为ASCII码字符,每个字符都有对应的ASCII码。