计算机中数字、文字、图像、声音和视频的表示与编码

数字系统基本概念包括:数据、信息、媒体。

通过使用数字对各式各样的信息按照进行一定的规则进行编辑,最终变换为计算机易于识别的信息,这个过程称为数字化编码。

数字化编码:用少量最简单的基本符号,对大量复杂多样的信息进行一定规律的组合。

编码的两大基本要素:

基本符号的种类(例如二进制的“0”和“1”)

组合规则

现代计算机内部采用二进制符号进行信息编码。

1计算机中数据的表示方法

任何一个二进制数N都可以表示为

N=S·2^E

其中E是一个二进制整数,称为数N的阶码,2为阶码的基数,S是二进制小数,称为数N的尾数。E和S可正可负。尾数S表示数N的全部有效数据,阶码E指明该数的小数点位置,表示数据的大小范围。

2 整数的表示

整数是没有小数部分的整型数字

例如:123、4、-56、0等都是整数,而1.34则不是整数。

计算机中整数的分类:

无符号整数:不区分正负的正整数。

有符号整数:最高位表示正负的整数。

整数的原码、反码和补码

原码:所谓原码是用一个数的最高位存放符号(0为正,1为负),后续的其他位与数的真值相同的数据表示方法。

整数的反码

反码:数值的反码表示法是用最高位存放符号,并将原码的其余各位逐位取反。反码的取值空间和原码相同且一一对应。

整数的补码

补码:在补码表示法中,正数的补码表示与原码相同,即最高符号位用0表示正,其余位为数值位。而负数的补码则为它的反码、并在最低有效位加1所形成。

我们在使用程序设计语言设计程序中使用的是数据的原码,而数据在计算机中是以补码的形式存在的。

三种编码的比较:

相同点:

1、 三种编码(原码、反码、补码)的最高位都是符号位。

2、 当真值为正时,三种编码的符号位都用0表示,数值部分与真值相同。 即它们的表示方法是相同的。

3、 当真值为负时,三种编码的符号位都用1表示,但数值部分的表示各不相同,数值部分存在这样的关系:补码是原码的“求反加1”(整数),或者“求反末位加1”(小数);反码是原码的“每位求反”。

4、 它们所能表示的数据范围基本一样。

区别:在于对负数的表示方法有所不同。

实数的表示

实数是带有整数部分和小数部分的数字

例如:1.23、3.4、0.56等都是实数。

实数小数点位置不固定,所以称浮点数。它是既有整数又有小数的数,纯小数可以看作实数的特例。

在计算机中采用浮点表示法来表示实数:

实数的格式

为了使表示法的固定部分统一,科学计数法(用于十进制)和浮点表示法(用于二进制)都在小数点左边使用了唯一的非零数码。这称为规范化。

计算机表示实数时,只存储实数的三部分信息:符号,指数,和尾数(小数点右边的位)。小数点和定点部分左边的位1并没有存储——他们是隐含的。

例如,一个实数 1000111.0101规范化后变成为: 26 × 1.0001110101 ,

在计算机中表示为:

+ 26 × 1.0001110101

+ 6 0001110101

↑ ↑ ↑

符号指数尾数

符号——一个数的符号可以用一个二进制位来存储(0或者1)。

指数——指数(2的幂)定义为小数点移动的位数。其可以为正也可以为负。余码表示法(后面讨论)是用来存储指数位的方法。

尾数——尾数是指小数点右边的二进制数。它定义了该数的精度。尾数是作为无符号整数存储的。

为了让正的和负的整数都可以作为无符号数存储,计算机通常采用余码系统。在余码系统中,使用一个正整数(称为一个偏移量)加到每个数字中,用于把他们同一移到非负的一边。这个偏移量的值是2^(m-1)-1,m是内存单元存储指数的大小。

整数算术运算的方法:以补码的形式进行运算

实数的算术运算

实数(浮点数)也可以进行包括加减乘除在内的算术运算。我们只介绍加法和减法,因为乘法和除法是加法和减法的多次重复运算。

浮点数加减法是同一个处理过程。步骤如下:

1. 检验符号,如果符号相同,相加其值,结果符号与他们相同。如果符号不同,比较绝对值,绝对值大的减去小的,结果符号取绝对值大的一方。

2. 移动小数点,使两者阶数相同。也就是说,当阶数不同时,数值小的一方将小数点左移,但要使值不变。

3. 将变换后的数值进行加减运算(包括整数和小数部分)。

随着现代计算机运用的深入,计算机不仅仅进行科学计算,实际上更大量的工作是用于处理人们日常工作和生活中最常使用的信息形式,也就是所谓的非数值型数据,包括语言文字、逻辑语言、视频图像等非数值信息。这需要为计算机找到一种合适的方法来表达这些信息。

计算机中使用了不同的编码来表示和存储数字、文字符号、声音、图片和图像(视频)信息。

编码(或代码)通常指一种在人和机器之间进行信息转换的系统(体系)。编码是人们在实践中逐步创造的一种用较少的符号来表达较复杂信息的表示方法。

字符的编码 —ASCII码

字符是非数值型数据的基础,字符与字符串数据是计算机中用得最多的非数值型数据。在使用计算机的过程中,人们需要利用字符与字符串编写程序、表示文字及各类信息,以便与计算机进行交流。为了使计算机硬件能够识别和处理字符,必须对字符按一定规则用二进制进行编码,使得系统里的每一个字母有唯一的编码;文本中还存在数字和标点符号,所以也必须有它们的编码。

美国最先制定了符合他们使用需要的美国标准信息交换标准码(American Standard Code for Information Interchange),简称ASCII码。

“美国标准信息交换代码”(American Standard Code for Information Interchange),简称ASCII码。其包含7位二进制编码,可表示27=128个字符。

ASCII码中,编码值0~31不对应任何可印刷(或称有字形)字符,通常称它们为控制字符,用于通信中的通信控制或对计算机设备的功能控制。编码值为32的是空格(或间隔)字符SP。编码值为127的是删除控制DEL码。其余的94个字符称为可印刷字符。

汉字编码

汉字也是字符,与西文字符比较,汉字数量大,字形复杂,同音字多,这就给汉字在计算机内部的存储、传输、交换、输入、输出等带来了一系列的问题。为了能直接使用西文标准键盘输入汉字,还必须为汉字设计相应的输入编码,以适应计算机处理汉字的需要。

汉字信息所涉及的编码:

国际码:1980年我国颁布了《信息交换用汉字编码字符集基本集》代号为GB2312-80,是国家规定的用于汉字信息处理使用的代码依据,这种编码称为国标码。在国标码的字符集中共收录了6763个常用汉字和682个非汉字字符(图形、符号),其中一级汉字3755个,以汉语拼音为序排列,二级汉字3008个,以偏旁部首进行排列。

机内码:汉字的机内码是计算机系统内部对汉字进行存储、处理、传输统一使用的代码,又称为汉字内码。汉字内码是与ASCII对应的,用二进制对汉字进行的编码。

一般用2个字节来存放汉字的内码,即双字节字符集(double-byte character set,简称DBCS)

汉字输入编码:汉字输入通常有键盘输入、语音输入、手写输入等方法,都有一定的优缺点。键盘输入方式:将每个汉字用一个或几个英文键表示,这种表示方法称为汉字的“输入编码”。

汉字输入编码的种类:

数字编码:如电报码、区位码等。特点:难于记忆,不易推广;

字音编码:如拼音码等。特点:简单易学,但重码多;

字形编码:如五笔字型、表形码等。特点:重码少,输入快,但不易掌握;

音形编码:如自然码、快速码等。特点:规则简单,重码少,但不易掌握

Unicode码

虽然ASCII码在字符编码领域占据主要地位,但是现在其他更具扩展性的代码也越来越普及,这些代码能够表示各种语言的文档资料。其中之一是Unicode,它是由硬件及软件的多家主导厂商共同研制开发的,并很快得到计算界的支持。

Unicode码采用唯一的16位模式来表示每一个符号。因此,Unicode由65536个不同的位模式组成——足以表示用中文、日文和希伯来文等语言书写的文档资料,则是Unicode对比ASCII码最大的优势。

Unicode码

Unicode即统一码,又称万国码,是一种以满足跨语言、跨平台进行文本转换、处理的要求为目的设计的计算机上字符编码。它为每种语言中的每个字符设定了统一并且唯一的二进制编码。Unicode 的编码方式与 ISO 10646 的通用字元集(亦称通用字符集)概念相对应,使用16位的编码空间。也就是每个字符占用2个字节。

对于中文而言,Unicode 16编码里面已经包含了GB18030里面的所有汉字(27484个字)

Unicode扩展自ASCII字元集。其使用16位元编码,并可扩展到32位,这使得Unicode能够表示世界上所有的书写语言中可能用於电脑通讯的字元、象形文字和其他符号,这使其有可能成为ASCII的替代者。

本页共86段,4554个字符,10815 Byte(字节)