内容正文:
1.3.2 数的编码 字符的编码
计算机基础及应用
同步精品课堂
河北科学技术出版社
任务一 计算机的发展
任务二 计算机的特点和分类
任务三 计算机的应用
任务四 计算机的前沿技术
同步精品课堂
目录
任务二 数的编码
任务三 字符的编码
xzdv掌握国家标准《机械制图》中有关图幅、比例、字体图线等基本规定。
教学目标
一
1.掌握机器数与真值的转换
2.掌握数的定点和浮点表示
3.掌握原码反码和补码的转换
4.了解西方字符编码(ASCII码)
5.掌握汉字代码
教学重点
二
教学重点:
机器数与真值的转换
掌握浮点数
掌握原码、反码、补码的转换
ASCII码的转换
教学难点:
原码、反码、补码的转换
输入码、国标码、内码、字形码转换
导入新课
三
走进超市,拿起一瓶饮料,瓶身上的条形码十分醒目。收银员扫码,商品价格等信息立马出现在收银机上。这条形码,就是一种编码,能把商品信息 “告诉” 机器。
计算机也得处理海量信息,像数字、字符。
可计算机只懂 “0” 和 “1” 的语言,那普通的数字和字符,怎么被计算机读懂和存储的呢?
接下来,咱们就探究数的编码与字符的编码,一起揭开计算机处理信息的神秘面纱 。
任务二 数的编码
“冯曼”体系结构:1946年6月,美籍匈牙利科学家冯•诺依曼提出了在计算机内存储程序的概念,计算机由控制器、运算器、存储器、输入设备、输出设备五大部分组成。人们把按照这一原理设计的计算机称为“冯•诺依曼型计算机”。它奠定了现代计算机结构理论,被誉为计算机发展史上的里程碑。迄今为止,计算机的体系结构和工作原理还一直沿用冯•诺依曼提出的这个计算机方案,其工作原理的核心是“存储程序”和“程序控制”。
数的编码
四
存储程序工作原理
一、进位计数制
一、机器数与真值
01
机器数
在计算机中数据和符号全部数字化,最高位为符号位,且用0表示正、用1表示负,那么把包括符号在内的一个二进制数我们称为机器数。
eg:十进制中的数 +3 ,计算机字长为8位,转换成二进制就是00000011。如果是 -3 ,就是 10000011 。这里的 00000011 和 10000011 就是机器数。
02
真值
用“ +” 、 “-”号表示的二进制数。
有符号数 10000011,其最高位 1代表负,其真正数值是 -3 而不是形式值 131(10000011转换成十进制等于 131)。为区别起见,将带符号位的机器数对应的真正数值称为机器数的真值。
“冯曼”体系结构:1946年6月,美籍匈牙利科学家冯•诺依曼提出了在计算机内存储程序的概念,计算机由控制器、运算器、存储器、输入设备、输出设备五大部分组成。人们把按照这一原理设计的计算机称为“冯•诺依曼型计算机”。它奠定了现代计算机结构理论,被誉为计算机发展史上的里程碑。迄今为止,计算机的体系结构和工作原理还一直沿用冯•诺依曼提出的这个计算机方案,其工作原理的核心是“存储程序”和“程序控制”。
数的编码
四
存储程序工作原理
一、进位计数制
01
定点数
是小数点在数中的位置固定不变的数,数的最高位为符号位,小数点可在符号位之后,也可在数的末尾,小数点本身不需要表示出来,它是隐含的。
缺点:只有纯小数或整数才能用定点数表示。有定点纯小数和定点纯整数两种。
02
浮点数
小数点在数中的位置是浮动的、不固定的数。
一般浮点数既有整数部分又有小数部分,通常对于任何一个二进制数N,总可以表示成:
N=±2P×S
N、P、S均为二进制数
P 为N的 阶码 , 一般为定点整数 , 常用补码表示, 阶码指明小数点在数据中的位置, 它决定浮点的表示范围; S 为 N 的 尾数 ,一般为定点小数 , 常用补码或原码表示,尾数部分给出了浮点数的有效数字位数,它决定了浮点数的精度。
二、数的定点和浮点表示
“冯曼”体系结构:1946年6月,美籍匈牙利科学家冯•诺依曼提出了在计算机内存储程序的概念,计算机由控制器、运算器、存储器、输入设备、输出设备五大部分组成。人们把按照这一原理设计的计算机称为“冯•诺依曼型计算机”。它奠定了现代计算机结构理论,被誉为计算机发展史上的里程碑。迄今为止,计算机的体系结构和工作原理还一直沿用冯•诺依曼提出的这个计算机方案,其工作原理的核心是“存储程序”和“程序控制”。
数的编码
四
存储程序工作原理
一、进位计数制
01
原码
其符号位用 0表示正, 1表示负,其余各位表示真值本身。如果是 8位二进制:
+ 1的原码是00000001 - 1的原码是10000001
(1)“0”的原码有两种表示法:00000000表示+0,10000000表示 -0。
(2)若微机字长为8位,则原码的表示范围为 -127~+127;若字长为16 位,则原码的表示范围为-32767~+32767。
02
反码
正数的反码是其本身同原码, 负数的反码是在其原码的基础上,符号位不变,其余各个位取反。
+1的反码是00000001 - 1的反码是11111110
(1)“0”的反码有两种表示法:00000000表示+0,11111111表示-0。
(2)若微机字长为8位,则反码的表示范围为-127~+127;若字长为16位,则反码的表示范围为-32767~+32767。
03
补码
正数的补码同原码,负数的补码为反码加 1。负数的补码是在其原码的基础上 , 符号位不变 , 其余各位取反 , 最后 +1 。
+1的补码是00000001 - 1的补码是11111111
(1)[+0]补=[-0]补=00000000,无+0和-0之分。
(2)正因为补码中没有+0和-0之分,所以8位二进制补码所能表示的数值范围为 -128~+127;16 位二进制补码所能表示的数值范围为-32768~+32767。
三、原码反码和补码
“冯曼”体系结构:1946年6月,美籍匈牙利科学家冯•诺依曼提出了在计算机内存储程序的概念,计算机由控制器、运算器、存储器、输入设备、输出设备五大部分组成。人们把按照这一原理设计的计算机称为“冯•诺依曼型计算机”。它奠定了现代计算机结构理论,被誉为计算机发展史上的里程碑。迄今为止,计算机的体系结构和工作原理还一直沿用冯•诺依曼提出的这个计算机方案,其工作原理的核心是“存储程序”和“程序控制”。
数的编码
四
存储程序工作原理
一、进位计数制
三、原码反码和补码
表3 几个典型的8位原码、反码和补码
真值 +0 -0 +1 -1 +127 -127 -128
原码 00000000 10000000 00000001 10000001 01111111 11111111 溢出
反码 00000000 11111111 00000001 11111110 01111111 10000000 溢出
补码 00000000 00000000 00000001 11111111 01111111 10000001 10000000
数的编码
四
存储程序工作原理
一、进位计数制
三、机器数和真值转换
01
原码转换为真值
根据原码定义,将原码数值位各位按权展开求和,由符号位决定数的正负,即可由原码求出真值
例如:已知【X】原=00011111B,【Y】原=10011101B,求X和Y。
解:X的符号位为0为正数,数值位X=0*26 + 0*25 + 1*24 + 1*23 + 1*22 + 1*21 + 1*20 =31
Y的符号位为1为负数,数值位Y=-(0*26 + 0*25 + 1*24 + 1*23 + 1*22 + 0*21 + 1*20 ) =-29
02
补码转换为真值
求补码的真值,先求出补码对应的原码,再按原码转换为真值的方法即可求出其真值。正数的原码与补码相同。负数的原码可在补码基础上再次求补,就是原码
例如:已知【X】原=0001111B,【Y】原=11100101B,求X和Y。
解:X的符号位为0为正数, [x]补=[x]原=00001111B,X=15
Y的符号位为1为负数, [Y]补=[[Y]补]]补=10011011B,Y=-27
数的编码
四
三、机器数和真值转换
03
补码的加减运算
在计算机中,凡是带符号的数一律用补码表示,运算结果自然也是补码。其运算特点是:符号位和数值位一起参加运算,并且自动获得结果(包括符号位与数值位)
补码加法的运算规则为:[X+Y]补=[X]补+[Y]补
补码减法的运算规则为:[X-Y]补=[X]补+[-Y]补
数的编码
四
三、机器数和真值转换
任务三 字符编码
西方字符编码(ASCII码)
四
01
基本ASCII码
计算机中常用的西文字符编码是美国信息交换标准代码:ASCII码。分为7位码和8位码两个版本。7位码是国际通用码,有效数字7位,最高位置0,共8位二进制位,一个字符占用一个字节,是半角字符。编码范围从00000000B----01111111B(00H~7FH);表示128个不同的字符。其中通用控制字符34个,阿拉伯数字10个,大、小写英文字母52个,各种标点符号和运算符号32个。表4:基本ASCII码。
02
扩展ASCII码
8位ASCII码允许最高位为1,后128个称为扩展ASCII码。
十进制ASCII码 十六进制ASCII码 表示的英文字符
0~31、127 00H~1FH、7FH 回车、删除等控制字符
32 20H 空格
48~57 30H~39H 0~9
65~90 41H~5AH A到Z共26个大写英文字母
97~122 61H~7AH a到z共26个小写英文字母
其余 一些标点、运算符号
字符编码--汉字代码
四
01
汉字输入码(外码)
由计算机外部输入汉字而编制的汉字编码,又称为汉字外部码简称外码。主要有以下四类:
(1)顺序码:将汉字按一定顺序排好,然后逐个赋予一个号码作为该汉字的编码。例区位码、电报码等。
区位码把全部汉字和图形符号排列在一个94行*94列的矩阵中,构成一个二维表格。
“区”:二维表中的每一行为一区,范围是01—94表示区号;
“位”:二维表中的每一列为一位,范围是01—94表示列号;
区位码:每个汉字的区号和位号的组合(高两位是区号,低两位是位号)
比如:汉字“中”在区位码二维表格中的第54行48列,那么它的区号为54,位号为48,则“中”字区位码为5448。
(2)音码:根据汉字的读音进行编码。例全拼输入法、智能ABC输入法、搜狗拼音、QQ拼音等。
(3)形码:根据汉字的字型进行编码。如五笔字型、郑码输入法、表形码输入法、大众码等
(4)音形码:根据汉字的读音和字型进行编码。例双拼码、五十字元等
字符编码--汉字代码
四
02
汉字交换码(国标码)
汉字信息处理系统之间或通信系统之间传输信息时,对每一个汉字所规定的统一编码。我国的国家标准是《信息交换用汉字编码字符集——基本集》即GB2312-80,又称国标码。
国标码收录的就是区位码中的所有字符,共7445个。有6763个汉字和682个非汉字图形符号。汉字中有一级常用汉字3755个,按拼音排序在区位码的16到55区;二级汉字3008个按部首排序在区位码的56到87区。
因汉字符号非常的多,需用16位二进制来表示一个汉字符号,即用两个字节存储一个国标码,是全角字符。标准规定国标码的编码范围是2121H—7E7EH(两个字节的最高位都是0)。
国标码与区位码的关系:区位码的区号和位号分别转换为十六进制,再分别加20H就得到该字的国标码中的高位字节和低位字节,合起来就是它们的国标码。
例如:
“中”字区位码为5448,区号54转换为十六进制为36H,加20H后为56H;位号48转换为十六进制为30H,加20H后为50H;“中”的国标码为5650H。
字符编码--汉字代码
四
03
汉字机内码(内码)
西方字符的标准交换码ASCII码是用一个字节来表示的,编码范围是00H~7FH;汉字国标码是用两个字节来表示,编码范围是2121H~7E7EH,很明显它们相关字节的最高位都是0,有相同编码部分。为了在计算机中把汉字和西文字符区别开并相互兼容,特规定:把国标码每个字节的最高位由0置为1,作为汉字内码(即内码的两个字节的最高位都是1,编码范围是A1A1H~FEFEH),在计算机内部使用。这样计算机就可以用字节的最高位来区分西文和汉字,字节最高位为0时表示ASCII码,为1时表示汉字。所以机内码就是汉字信息处理系统内部存储、处理汉字而使用的编码,简称内码。
国标码和内码的转换规则为:国标码的两个字节分别加80H,得到汉字的内码,即内码=国标码+8080H。
例如:
汉字“中”的国标码为5650H,5650H+8080H=D6D0H,“中”字的机内码为D6D0H。
字符编码--汉字代码
四
04
汉字输出码(汉字字形码、汉字字库、汉字字模、点阵码)
存储在计算机内的汉字需要在屏幕上显示或在打印机上输出时,需要知道汉字的字形信息。汉字内码并不能直接反映汉字的字形,而要采用专门的字形码。
点阵字形是将字符的字形分解成若干“点”组成的点阵,将此点阵置于网格上,每一小方格是点阵中的一个“点”,点阵中的每一个点可以有黑白两种颜色,有字形笔画的点用黑色;反之用白色,这样就能描写出汉字字形了。
下图是汉字“学”的点阵,如果用十进制的“1”表示黑色点,用“0”表示没有笔画的白色点,每一行16个点用两字节表示,则需32字节描述一个汉字的字形,即一个字形码占32字节。根据汉字输出的要求不同,点阵的多少也不同。简易型汉字为16*16点阵,提高型汉字为24*24 点阵、32*32点阵,甚至更高。点阵越大,描述的字形越细致美观,质量越高,所占存储空间也越大。汉字点阵的信息量是很大的,以16*16点阵为例,每个汉字要占用32个字节,国标码两级6763个汉字要占用约212KB存储空间。
字符编码--汉字代码
四
04
汉字输出码(汉字字形码、汉字字库、汉字字模、点阵码)
汉字“学”的 16*16点阵编码:
字符编码--汉字代码
四
汉字信息处理系统
输入
汉字外码
国标码
机内码
汉字字形码
输出
师生互动
五
1.机器数和真值二者的区别?
2.西文字符编码大写字母A和小写字母a的ASCII值相差多少?
3.计算机系统中,数值一律采用什么码表示和存储?
1. 机器数:计算机中数据和符号全部数字化,最高位为符号位
真值:最高位为符号位
2. 大写字母ASCII值和小写ASCII值的相差32
3 . 在计算机系统中,数值一律采用补码表示和存储
随堂练习
六
1.标准 ASCII 码用( )位二进制数表示一个字符。
A. 7
B. 8
C. 16
D. 32
答案:A
解析:标准 ASCII 码采用 7 位二进制编码,可表示 128 个字符,包括英文字母(大小写)、数字、标点符号及一些控制字符。8 位二进制数是扩展 ASCII 码(包含 256 个字符)或在存储时为了方便以字节(8 位)为单位存储,16 位和 32 位通常用于更复杂的字符编码或数据类型,故本题选 A
随堂练习
六
2.已知字符‘A’的 ASCII 码值为 65,那么字符‘E’的 ASCII 码值为( )。
A. 66
B. 67
C. 68
D. 69
答案:D
解析:在 ASCII 码表中,字符是按顺序依次排列的,‘A’到‘E’依次递增 4,因为‘A’的 ASCII 码值为 65,所以‘E’的 ASCII 码值为 65 + 4 = 69,本题选 D。
随堂练习
六
3.若某机器数为 10000001,当它表示原码时,对应的真值是( )。
A. +129
B. -129
C. +1
D. -1
答案:D
解析:在原码表示中,最高位为符号位,1 表示负数,后面的位为数值位。机器数 10000001,最高位 1 表示负数,数值位为 0000001,转换为十进制是 1,所以真值为 -1,本题选 D
随堂练习
六
4.浮点数的精度取决于阶码的位数。( )
答案:×
解析:浮点数的精度取决于尾数的位数,尾数表示数值的有效数字部分,位数越多精度越高;阶码决定浮点数能表示的数值范围,所以该说法错误。。
随堂练习
六
5.简述原码、反码和补码的之间的转换关系。
答案:原码:是一种简单的机器数表示法,最高位为符号位(0 表示正数,1 表示负数),其余各位为数值位,即该数的绝对值的二进制表示
反码:正数的反码与原码相同;负数的反码是在原码的基础上,符号位不变,其余各位取反
补码:正数的补码与原码相同;负数的补码是在反码的基础上,最低位加 1
最后课堂小结
七
谢谢
$$