您的位置: 网站首页 > 程序开发 > 汇编语言与微机原理教程 > 第2章 计算机进制转换及数据编码 > 【2.2 计算机数据编码及转换】

2.2 计算机数据编码及转换

 

2.2  计算机数据编码及转换

2.2.1  ASCII

计算机内常用的字符编码是美国信息交换标准编码(American Standard Code for Information InterchangeASCII)。它规定用7位二进制表示一个字母、数字或符号,包含128个不同的编码。由于计算机用8位二进制组成的字节作为基本存储单位,一个字符的ASCII码一般占用一个字节,低7位是它的ASCII码,最高位为0,或者用作校验位。详细编码如表2-2所示,ASCII字符表如表2-3所示。

2-2  详细编码

        b7b6b5

b4b3b2b1

000

001

010

011

100

101

110

111

0000

NUL

DLE

SP

0

@

P

`

p

0001

SOH

DC1

1

A

Q

a

q

0010

STX

DC2

2

B

R

b

r

0011

ETX

DC3

#

3

C

S

c

s

0100

EOT

DC4

$

4

D

T

d

t

0101

ENQ

NAK

%

5

E

U

e

u

0110

ACK

SYN

&

6

F

V

f

v

0111

BEL

ETB

7

G

W

g

w

1000

BS

CAN

(

8

H

X

h

x

1001

HT

EM

)

9

I

Y

i

y

1010

LF

SUB

*

:

J

Z

j

z

1011

VT

ESC

+

;

K

[

k

{

1100

FF

FS

L

\

l

1101

CR

GS

-

=

M

]

m

}

1110

SO

RS

.

N

^

n

~

1111

SI

US

/

?

O

_

o

DEL

2-3  ASCII字符表

代码

名字

含义

代码

名字

含义

NUL

Null

空白

DLE

Data line escape

数据链换码

SOH

Start of Heading

标题开始

DC1

Device control 1

设备控制1

STX

Start oftext

正文开始

DC2

Device control 2

设备控制2

ETX

End oftext

正文结束

DC3

Device control 3

设备控制3

EOT

End of transmission

传输结束

DC4

Device control 4

设备控制4

ENQ

Enquiry

询问

NAK

Negative acknowledge

未应答

ACK

Acknowledge

应答

SYN

Synchronize

同步

BEL

Bell

响铃

ETB

End of Transmitted Block

块传送结束

BS

Backspace

退格

CAN

Cancel

作废

HT

Horizontal tab

横向列表

EM

End of Media

媒体用毕

LF

Linefeed

换行

SUB

Substitute

替代

VT

Vertical tab

纵向列表

ESC

Escape

换码

FF

Form feed

换页

FS

File Separator

文件分隔符

续上表

代码

名字

含义

代码

名字

含义

CR

Carriage Return

回车

GS

Group Separator

组分隔符

SO

Shift out

移位输出

RS

Record Separator

记录分隔符

SI

Shift in

移位输入

US

Unit Separator

单元分隔符

SP

Space

空格

DEL

Delete

删除

7ASCII码在计算机中以一个字节(8位)存放,多出的一位(最高位或保持为0,或用作奇偶校验位。

随着计算机应用的普及,7ASCII码已不敷使用,国际标准化组织在兼容ISO 646的基础上制定出ISO 2022标准《七位字符集的代码扩充技术》,该标准把原来的7位码扩展成8位码,可以表示256个字符,扩充了希腊字母、数学符号、外语字母、商用图符、游戏符号等。

西文字符集的另一种常用编码是EBCDIC码,它用8位二进制数编码标识一个字符,共有256个,该编码在IBM公司的某些计算机中用得较多。

2.2.2  汉字内码

汉字是中文字符,是中文的基本元素。汉字数量巨大,总数超过6万,且字型复杂,异体字多,同音字众,这为汉字的编码、处理、传输、交换、输入、输出带来了不少困难。计算机系统中汉字在不同应用界面有不同的编码,如输入、存储、传输、交换、显示等。不同场合同一汉字各有不同的编码,同一应用界面也存在多种汉字代码。

1.常用的汉字字符集与编码

以我国为首,世界上许多国家和地区都使用汉字。按使用频度可把汉字分为高频字(约100个)、常用字(约3000个)、次常用字(约4000个)、罕见字(约8000个)和死字(约45 000个)。

我国1981年公布了《信息交换用汉字编码字符集·基本集》(GB231280)。该标准选取6 763个常用汉字和682个非汉字字符,并为每个字符规定了标准代码,供这7445个字符在不同计算机系统之间进行信息交换。该字符集及其编码称为国标交换码,简称国标码。

GB2312字符集由3部分组成:第一部分是字母、数字和各种常用符号(拉丁字母、俄文字母、日文平假名和片假名、希腊字母、制表符等)共682个;第二部分是一级常用汉字3755个,按汉语拼音顺序排列:第三部分是二级常用汉字3 008个,按偏旁部首排列。

GB2312国标字符集构成一个二维平面,分成9494列,行号称为区号,列号称为位号,分别用7位二进制数表示。每个汉字或字符在码表中都有各自确定的位置,即有一个唯一确定的14位编码(7位区号在左,7位位号在右),用区号和位号作为汉字的编码就是汉字的区位码。GB231280字符集中的字符二维分布如表2-4所示。

2-4  GB231280分布表

   位码

区码

<1><94>

<1><9>

标准符号区:字母、数字、各种常用符号

<10><15>

自定义符号区

<16><55>

一级汉字(3755个,按拼音顺序排列)

<56><87>

二级汉字(3008个,按偏旁部首排列)

<88><94>

自定义汉字区(共658个)

我们所使用的汉字的区位码与国标码是不相同的。为了正确无误地进行信息传输,不与ASCII码的控制代码相混淆,在区位码的区号和位号上各自加32(即20H),就构成了汉字的国标码。

为了存储与处理方便,汉字国标码的高低7位各用一个字节(8来表示,即用两个字节表示一个汉字。在计算机中双字节汉字与单字节西文字符混合使用,汉字编码的各个字节若不予以特别标识,就会与单字节的ASCII码混淆不清;为此,将标识汉字的两个字节编码的最高位置为1。这种最高位为1的双字节汉字编码就是现在普遍采用的汉字机内码,简称内码,是计算机内部存储、处理汉字所使用的代码。内码、国标码、区位码三者的关系是:

高字节内码=高字节国标码+80H=区码+20H+80H=区码+0A0H=区码+160

低字节内码=低字节国标码+80H=位码+20H+80H=位码+0A0H=位码+160

在许多场合,GB231280基本集汉字不够用,国家先后制定了两个扩充的汉字字符集(两个辅助集)。繁体汉字在一些地区和领域仍在使用,针对上述3个汉字字符集又制定出相应的繁体汉字字符集,国家标准代号是GB1234590《信息交换用汉字编码字符集——辅助集》,包含了717个图形符号和6 866个汉字。

汉字编码字符集有多种,不同的计算机可能选择不同的汉字字符集及其编码,选择不同的内码来表示。BIG5是中国台湾地区计算机系统中使用的汉字编码字符集,它包含了420个图形符号和13070个繁体汉字。

2.通用编码字符集UCS和国标GBl8030.2000

Internet的发展和普及已经将全世界各个国家和民族连成一个“地球村”,这对计算机多文种信息处理提出了巨大的要求,在现有单字节体系基础上修修补补已满足不了应用需要。代码是计算机表示、存储、处理、交换文字信息的基础,必须首先解决多文种的字符集编码,做到多文种、大字量、多用途及标准化。字符集的基本要素是字汇和编码;字汇应涵盖所有文种,满足已有的和潜在的应用要求;编码应统一简明,保证不同系统可直接进行信息交换。

1)通用编码字符集UCS

ISO/IEC 10646即通用编码字符集(Universal Coded-Character SetUCS)规定了全世界现代书面语言文字所使用的全部字符的标准编码,用于世界上各种语言文字、字母符号的数字化表示以及存储、传输、交换和处理,真正实现了所有字符在同一字符集内等长编码、同等使用的多文种信息处理。

19935月,该标准的第一部分即ISO/IEC 10646.1正式发布。我国国家标准GB13000.1与之对应,技术内容完全一致。

UCS编码字符集的总体结构由组、平面、行和字位构成四维编码空间,即UCS007F128个组、每个组有00FF256个平面、每个面有00FF256行、每行有00FF256个字(位),每个组、平面、行和字位各用8位二进制数(一个字节)表示。这样,UCS中每一个字符用4个字节编码,对应每个字符在编码空间的组号、平面号、行号和字位号,称为四八位正则形式,记作UCS-4UCS-4提供了极大的编码空间,可安排多达13亿个字符,充分满足了世界上多种民族语言文字信息处理的需要。

UCS编码空间规定了三类平面:第一类是基本多文种平面BMP,是00组的00平面,包含拉丁字母文字、音节文字和表意文字中通常使用的字符以及各种符号和数字;第二类是辅助平面,是00组的01DF平面和015F组内的00FF平面,辅助平面用于安置BMP无法容纳的字符,它们与BMP一起构成UCS的标准编码区域,辅助平面目前尚未安排字符,留作将来标准化用,不得用于其他用途;第三类是专用编码空间,是00组中的E0FF32个平面和607F32个组,专用编码空间的字符由用户自行定义,标准中不做规定。

UCS规定:组号和平面号均为00H的四八位正则形式(UCS-4)可以省略组号和平面号,因此基本多文种平面BMP内的字符可用两个字节的二进制数来表示,形成双字节编码的字符集,记为UCS-2

BMP平面分成AIOR4个区。

A区:代码00004DFF,共19967个字位,用于表示拉丁字母文字、音节文字及各种符号的编码,其中0000001F007E009F保留用于控制字符(66个)。

I区:代码4E009FFF,共20992个字位,用于CJK统一的表意文字,即中、日、韩三国所用汉字的编码。

O区:代码A000DFFF,共16384个字位,暂时未用,留作未来的标准化。

R区:代码E000FFFD,共8190个字位,为限制使用区,作为专用字符、兼容字符和变形显示形式的编码。

2CJK统一汉字编码。

UCS中的表意文字采用中、日、韩汉字统一编码(即CJK编码)方式,以现有各个源字符集作为源,按统一的认同规则对其中的汉字进行认同和区别,产生20902CJK汉字,并按四大字典(康熙字典、大汉和字典、汉语大字典及大字源)的页码和字位综合排序。在20902CJK汉字中,从中国角度看,有17124个字源自GBGB基本集简化字、第一、三、五辅助集繁体字、现代汉语通用字表、邮电通信字符集以及中国台湾地区的CNS11643《通用汉字交换码》、香港地区用字58个、延边朝鲜族“史读”字92个等),从中国台湾地区角度看,有17258个字源自TCA-CNS,从日本角度看,有12157个字源自JIS,从韩国角度看,有7476个字源自KSC

CJK汉字用两个字节编码,位于ISO 10646编码空间的基本多文种平面BMPI区内。

3)汉字扩展内码规范GBK

为了解决GB231280汉字收字不足并简化代码体系间的转换,做到简繁同平面共存、保持已有应用软件的兼容性并同国际统一字符集标准ISO 10646接轨,我国制定了汉字扩展规范GBK

GBK保持与GB231280(《信息交换用汉字编码·基本集》)的汉字编码完全兼容,同时在字汇一级支持ISO106461(即国家标准GB130001)的全部CJK汉字,并且同时涵盖大部分的BIG5中的非汉字符号。

GBK字符集的汉字字序规定如下。

·    GB231280的汉字仍分为一级与二级,并分别按拼音和偏旁部首顺序排列。

·    GB13000.1中的其他CJK汉字按UCS代码大小顺序排列。

·    追加的80个汉字、部首构件与上述两类字汇分开,按康熙字典页码、字位单独排列

4GB180302000《信息交换用汉字编码字符集基本集的扩充》。

GB180302000《信息交换用汉字编码字符集基本集的扩充》是我国继GB23121980GB130001993之后最重要的汉字编码标准,于2000317发布,是我国计算机系统必须遵循的基础性标准之一。GB18030GB2312GB2311)的基础上扩充,字汇上支持GB130001的全部中日韩(CJK)统一汉字字符和全部CJK扩充A的字符,收录汉字27484个,编码体系容量大,具有兼容性、扩展性和前瞻性。

GB18030采用单字节、双字节和四字节3种方式对字符编码,编码空间约160万个码位,目前已编字符约26万个。

单字节部分采用GB/T 11383的编码结构和规则,使用007F码位(对应ASCII码的相应码位),计128个字符。

双字节部分的首字节码位从81FE,尾字节码位分别是407E80FE,计126×(63+127=23940个字符。

四字节部分采用GB/T 11383未采用的3039作为双字节编码扩充的后缀,即第一、三字节编码码位均从81FE,第二、四字节编码码位均从3039,计126×10×126×10 = 1587600个字符。

2.2.3  语音、图像和图形的计算机表示

语音、图像和图形是重要的信息载体,与数值、字符相比,它们直观明了、形象逼真、丰富多彩,能够满足人们视觉、听觉的多维感觉,更加人性化,更符合现代人的需要,已经成为互联网时代计算机不可或缺的内容。

1.语音

语音是人们传递信息最方便、最熟悉的方式,语音携带的信息量大而精确。语音是不同频率的振动波,属模拟信号,不能直接进入计算机存储和处理。语音信号必须经过采样和量化,变成数字量才能为计算机所接受和处理。

1)采样。语音信号经麦克风、录音机等拾音设备变成时间上和幅度上都连续变化的模拟电流(电压)信号,采样器每隔固定的时间间隔对模拟电信号截取一个幅值,这样便得到一组离散的、与声音信号幅度相对应的幅值。根据采样定理,只要采样频率大于音频信号中最高频率分量的2倍,这组离散幅值就包含原来音频信号中的全部信息。

2)量化。时间上离散的采样值在幅度上仍是连续变化的。用专门的模/数转换电路(ADC)将每个离散值转换成n位二进制的数字量,就变成计算机可接受的数据,再经进一步编码、压缩,以声音文件的形式存入计算机硬盘或内存。

采样-量化过程如图2-2所示。

2-2  语音信号的采样和量化

计算机播放语音信息时把声音文件中的数字信号通过数/模转换电路(DAC)变换成模拟量信号,经滤波、混放送音响设备输出。

计算机丰富的音频功能主要是由声卡实现的。多媒体计算机处理和播放的音频主要有:波形音频、MIDI音频、CD音频和MP3等。

1)波形音频。

波形音频是多媒体计算机获得声音的最直接、最简单的方式。声卡以一定的采样频率和量化级对外部声源输入的声音采样、量化,转换为数字信号,以适当格式存储在硬盘上。重放所记录的声音时,声卡将文件中的数字信号经数/模转换还原成模拟信号,混音后由扬声器输出。

一般声卡支持44.122.0511.025kHZ的采样频率,量化数据位数(即量化级)经常采用8位、12位或16位。数字激光唱盘(CD,红皮书标准)的标准采样频率为44.1kHz、量化位数为16位、双声道立体声,CD音乐一秒钟所需的存储量为:

44.1×1000×16×2/8=176400B(字节)≈172.27KB

Windows所使用的标准数字音频称为波形文件,文件扩展名是.wav。声霸卡中常用于DOS游戏的VOC文件也是一种常见的数字声音文件。波形音频文件的主要缺点是文件太大,不适合长时间记录。

2MIDI音频。

MIDIMusical Instrument Digital Interface,乐器数字接口)音频可以满足长时间播放音乐的需要。与波形文件不同,MIDI文件(扩展名为.mid)并不对音乐进行采样,而是将每个音符记录为一个数字,MIDI标准规定了各种音调的发音和混合。MIDI文件记录的是乐谱的数字描述。当一组MIDI消息通过音乐合成芯片演奏时,合成芯片解释这些数字并通过输出装置产生音乐。因此MIDI文件比波形文件要小得多,同样半小时立体声音乐,MID文件只有200KB左右,而WAV波形文件则长达300MB,两者相差1500倍。

低价声卡多采用FM合成法,即通过正弦波相互调制来模拟真实的乐器声音,如YamahaOPL-2OPL-3合成芯片。这种方法成本较低,但音效差,与实际的乐器声音有所不同。好的声卡采用波表卡来实现音乐合成。波表卡将真实乐器声音波形的数样本存储在ROM芯片中,演奏时将相应乐器的波形样本播放出来,产生丰富逼真的音乐。

MIDI文件只能记录标准所规定的有限种乐器的组合,缺乏重现真实自然声音的能力,不能用在需要语音的场合。

3CD音频和MP3

CD音频是存储在CD-ROM唱盘上的数字化声音,为44.1kHz采样频率、16位量化级的立体声存储,可完全重现原始声音,每张CD唱盘可记录74分钟的音乐节目。

一般用四线音频线将CD-ROM驱动器的音频输出连到声卡上,CD音频信号经声卡处理、放大后由扬声器输出,也可由CD-ROM驱动器前端的耳机插孔输出。

MP3MPEG Audio Layer 3的缩写,是用MPEGMoving Photographic Experts Group,运动图像专家组)绿皮书标准的声音压缩技术制作的数字音频文件。MP3对原始记录的未压缩的数字音频文件的音高、音色和音量信息,在它们变化相对不大时以同一种信息代替,并用一定的算法对该声音文件进行代码替换处理,能将原始数字声音文件压缩得很小,压缩比达14124,最常采用的压缩比为110112

MP3音乐非常流行,在同样的采样频率下,同一首歌曲MP3的大小仅为CD1/12,而人耳却听不出两者的差别来。MP3播放非常方便,适合随身播放音乐。

2.图像

图像(Image)用m×n个像点(Pixel,像素)来表示画面内容,称为点阵图像或位图图像。图像特别适合表现含有大量细节(如明暗、浓淡、层次、纹理等)、彩色丰富的照片、绘画之类的画面。

常用彩色空间(又称彩色模型)来描述图像颜色。常用的彩色空间有RGB(红绿蓝)空间、CMYK(青橙黄黑)空间、Yuv(亮度色差)空间。任何一种颜色都可在上述彩色空间中精确描述。图像在彩色空间中,由每一个分量的所有像素构成一个位平面,彩色图像有34个位平面,单色图像只有一个位平面。组成图像的所有位平面中像素的位数之和称为最大颜色数,也叫图像深度。图像的数据量等于图像宽度×图像高度×图像深度/8(字节长度)。表2-5给出了几种常用图像的数据量。

2-5  常用图像的数据量

图像尺寸

8位(256色)

16位(65536色)

24位(真彩色)

512×512

256KB

512KB

768KB

640×480

300KB

600KB

900KB

1024×768

768KB

1.5MB

2.25MB

1024×1024

1MB

2MB

3MB

1280×1024

1.25MB

2.5MB

3.75MB

一幅静止图像的数据量尚且如此,三维动态画面的数据量更是大得惊人,必须经过压缩编码才能进行有效地传输、存储。

计算机中的数字化图像可利用工具软件如PaintAirbrushPhotoshop等创作生成,也可通过硬件设备如扫描仪、数码相机、电视摄像机等采集产生。

位图图像的数据文件格式较多,表2-6列出了计算机中几种常用的图像文件格式。

2-6  常用的图像文件格式

文件扩展名

性能说明

.bmp

Microsoft Windows的图像格式,格式转换时用作Microsoft Windows的源文件

.tga

Truevision公司定义的文件格式,用于存储彩色图像,采用游程编码(RLE)对图像数据进行无失真压缩

.pcx

ZSOFT公司为存储PaintBrush软件产生的图像而建立的图像格式,已成为事实上的位图文件标准格式,采用RLE压缩方法

.gif

它是CompuServe开发的Graphics Interchange Format图像文件格式,采用LZWLempel-ZivWalch)算法进行无失真压缩,使用变长代码、支持256色,一个文件中可存放多幅彩色图像

.tiff

它是AldusMicrosoft公司为扫描仪和出版软件开发的Tag Image File Format文件格式,适合存储二值图像、灰度图像和彩色图像,它极其灵活、完全开放、扩展性好,不针对特定系统,适用面广,各种软件都支持该格式

3.图形

图形(Graphics)是用几何要素(点、线、面、体等)以及表面材质、光照位置等来描述画面或场景中的内容,称为几何图形或矢量图形,如工程图纸、机械零件图、地形图、天气图等。

描述和表示物体、场景的常用几何模型有3种:线框模型(wireframe model)、面模型(surface model)和体模型(solid model)。线框模型最简单,用直线、折线、曲线等描述物体的几何形状,易于生成各种视图,但线框模型信息不完整,难于消除隐面、不能生成剖面,几乎不能进行体积、面积等物性计算。面模型较复杂,使用多边形平面、曲面等描述物体的几何形状,信息较完整,可产生各种视图和真实感图形,能消除隐面、生成剖面,但物性计算仍有一定困难。体模型复杂,用多面体、球体、锥体等基本体元素以及并、交、差运算来描述物体,信息完整,能自动消除隐面、生成剖面,物性计算容易。

图形生成方法目前绝大多数采用交互方式(interactive),操作人员使用交互设备控制和操纵模型的建立和图形的生成过程,模型及其图形可边生成、边显示、边修改,直到产生符合要求的模型和图形。

与照相和影视技术相比,利用计算机表示、处理和生成的图形既可以是真实存在的,也可以是虚幻的(如科幻怪兽、已灭绝的古代动物、构思中的新产品等);既可以是静止的,又可以是运动变化的;既可以是常态的,还可以是夸张变态的。在图形生成过程中,人和计算机可交互地进行各种控制和修改。

二维和三维图形生成的算法和交互处理技术是计算机图形学最基本的研究内容,它包括图形的输入、输出、变换、组合、控制、存储等技术,特别是三维真实感图形的生成技术。20世纪80年代广泛使用的光栅图形扫描显示器为改善图形的真实感创造了条件。许多的图形处理功能已经形成了一些国际标准、工业标准和企业标准。

计算机图形学广泛应用于各个领域,包括计算机辅助设计和辅助制造(CAD&CAM),地理信息、自然资源和自然现象的图形制作(地形图、天气图、海洋图、石油开采图等),作战指挥和军事训练,科学计算结果的可视化,计算机动画与艺术,电子出版等。分数维图形学用于模拟自然景象,既可生成结构性较强的花草树木,也可生成结构性较弱的云雾烟岚,以及具有动态特性的波浪、火焰;用于构造人体模型可以很好地表现衣着效果、人物表情,甚至细到手指的关节活动。

图像和图形两种表示方法各有所长,在很多应用场合它们相互补充,在一定条件下还可以互相转换。