内容正文:
项目二 探究计算机中的数据表示
认识数据编码—文本数据
学习目标
了解编码的意义和作用。
了解数值数据编码的基本方法。
了解常用的文本数据编码方式。
了解声音数字化的基本方法。
了解图像数字化的基本方法。
编码的定义
编码(encoding)是指用预先规定的方法将文字、数字或其他对象转换成规定的符号组合,或将信息、数据转换为规定的脉冲电信号。
计算机中的编码
计算机是由逻辑电路组成,逻辑电路只有高低二种电位状态,正好用0 和 1表示,所以计算机采用二进制来存储和表示数据。因此想要用计算机存储和处理数据、文本、图形图像、声音、视频等数据,必须对数据进行二进制编码,即将其转换成有0 和 1组成的代码。在计算机中,编码一般是指用预先规定的方法将数字、文 字、图像、声音、视频等对象编成二进制代码的过程。
一、数值数据的编码
编码
计算机中数值数据的编码分为原码、反码和补码,其编码规则见下表。
计算机中的数值数据是以补码的方式表示的,以十进制数 +21 和 -21 的 8 位编码为例,它们的二进制数、原码、反码和补码分别如下。
二、文本数据的编码
1. 西文字符的编码
字母、数字、标点符号等,称为西文字符。计算机在存储和处理这些西文字符时,需要为每个字符规定一个由 0 和 1组成的代码。
目前,国际上普遍采用的西文字符编码标准是ASCII 码(美国标准信息交换代码)。
ASCII码分为标准ASCII码和扩展ASCII码。
标准ASCII码使用7位二进制位来表示西文字符。
扩展ASCII用8位二进制位来表示字符,第8位用于确定附加的128个特殊符号字符、外来语字母和图形符号。
练习
1.标准ASCII码用7个二进制位表示一个英文字母,字母A 的ASCII码是1000001,已知大写字母在ASCII编码中是 连续的,则字母Z的ASCII码是 。
2.已知小写字母“a”的ASCII码为“1100001”,则英文 单词“boy”在计算机中存储时 的编码为 。
A.11100010 11101111 11111001
B.1100010 1101111 1111001
C.01100010 01101110 01111010
D.01100010 01101111 01111001
1011010
D
ASCII码的机内码要在最高位补一个0,以便用一个字节表示一个字符。ASCII码主要用于显示现代英语和其他西欧语言,是最通用的信息交换标准。
二、文本数据的编码
2. 汉字的编码
常用汉字有近 5000 个,这种信息容量要用 2 个字节长即 16 位二进制编码才能满足。1980 年,中国国家标准总局发布了中华人民共和国国家标准 GB2312—1980《信息交换用汉字编码字符集——基本集》,又称为国标码。国标码用 2 个字节表示一个汉字,其中每个字节的最高位为 0。
但是,国标码在计算机内部存储和处理时会与 ASCII 码发生冲突。为了解决这个问题,汉字编码在计算机内表示时,将每个字节的最高位改设为 1,这被称为机内码(简称内码)。例如,“大”字的机内码为 1011010011110011。机内码是用最高位均为 1 的 2 个字节表示一个汉字,是计算机内部存储、处理汉字所使用的统一编码。
计算机存储单位一般用 bit、B、KB、MB、GB、TB、PB、EB、ZB、YB、BB、NB、DB……来表示它们之间的关系是:
位 bit (比特)(Binary Digits):存放一位二进制数,即 0 或 1,最小的存储单位。[英文缩写:b(固定小写)]
字节byte:8个二进制位为一个字节(B),最常用的单位。一个英文占一个字节,一个中文占两个字节。
1 Byte(B) = 8 bit
1 Kilo Byte(KB) = 1024B
1 Mega Byte(MB) = 1024 KB
1 Giga Byte (GB)= 1024 MB
1 Tera Byte(TB)= 1024 GB
二、文本数据的编码
3. Unicode
Unicode 是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。它为每种语言中的每个字符设定了统一且唯一的二进制编码,以满足跨语言、跨平台进行文本转换和处理的要求。目前的 Unicode 字符分为 17 组编排,每组称为 Plane(平面),每个 Plane拥有 65536 个码位,共 1114112 个码位。
Unicode 一般用 2 个字节表示一个字符(非常偏僻的字符用 4 个字节)。但是,一篇英文文章,用 Unicode 编码比用 ASCII 编码需要多一倍的存储空间。于是,又出现了把Unicode 编码转化为“可变长编码”的 UTF-8 编码。UTF-8 编码把一个 Unicode 字符根据不同的数字大小编码成 1~6 个字节,常用的英文字母被编码成 1 个字节,汉字通常是 3个字节,只有很生僻的字符才会被编码成 4~6 个字节。
Unicode 的实现方式还有 UTF-16 和 UTF-32 等。
巩固练习
1.十进制数转化为二进制数的规则:正数部分的转换方法是除2反向取余,小数部分的转换方法是乘2正向取整。那么,十进制数20.25转换成二进制数是:10100.01
2.计算机中负数的原码为符号位1连接数字部分,十进制数-10的八位二进制数原码为位: 10001010 ;负数的反码为原码除符号位外取反,十进制数-10的反码为: 11110101 ;负数的补码是在反码的基础上+1,十进制数-10的补码为: 11110110
$$