友情提示:同学您好,此页面仅供预览,在此页面学习不会被统计哦! 请进入学习空间后选择课程学习。

授课题目:

计算机体系结构及其编码方式(二)

教学目标:

1.  掌握二进制及其运算特点,计算机采用二进制的原因以及二进制的运算方法;

2.  了解ASCII码字符集合,了解汉字在计算机中有多种编码;

3.  能够理解补码的作用。

教学重点:

   计算机的语言(机器语言)是二进制,数值数据和非数值数据都需要进行编码才能在计算机中存储和处理;数据的二进制表示特点和运算规则。

教学难点:

数据编码。

教学方式与教学安排:

讲授课   2学时

 


教学内容:

2.4. 计算机中的数值数据的表示

1.基本概念

在计算机内部表示二进制数的方法通常称为数值编码,把一个数及其符号在机器中的表示加以数值化,这样的数称为机器数。机器数所代表的数称为该机器数的真值。要完整地表示一个机器数,应考虑三个因素:机器数的范围;机器数的符号;机器数中小数点的位置。

(1)机器数的范围:由计算机的CPU字长来决定。

当使用8位寄存器时,字长为8位,所以一个无符号整数的最大值是:(11111111)B=(255)D,此时机器数的范围是0~255。

当使用16位寄存器时,字长为16位,所以一个无符号整数的最大值是:(1111111111111111)B=(FFFF)H=(65535)D,此时机器数的范围是0~65535。

(2)机器数的符号:在算术运算中,数据是有正有负的,称之为带符号数。为了在计算机中正确地表示带符号数,通常规定每个字长的最高位为符号位,并用“0”表示正数,用“1”表示负数。例如:字长为8位二进制时,D7为符号位,其余D6~D0为数值位;字长为16位二进制数时,D15为符号位,其余D14~D0为数值位。

  (3)机器数中小数点的位置:在机器中,小数点的位置通常有两种约定,一种规定小数点的位置固定不变,这时的机器数称为“定点数”;另一种规定小数点的位置可以浮动,这时的机器数称为“浮点数”。

2.带符号数的原码、反码、补码表示

(1)原码:规定正数的符号位为0,负数的符号位为1,其它位按照一般的方法来表示数的绝对值。用这样的表示方法得到的就是数的原码。

例如:当机器字长为8位二进制数时:

            X=+1011011           [X]原码=01011011

            Y=-1011011           [Y]原码=11011011

原码表示的整数范围是-(2n-1-1)~ +(2n-1-1),其中n为机器字长。

通常:8位二进制原码表示的整数范围是-127~+127,

     16位二进制原码表示的整数范围是-32767~+32767。

(2)反码:对于一个带符号的数来说,正数的反码与其原码相同,负数的反码为其原码除符号位以外的各位按位取反。

例如:当机器字长为8位二进制数时:

          X=+1011011     [X]原码=01011011     [X]反码=01011011

          Y=-1011011     [Y]原码=11011011     [Y]反码=10100100

负数的反码与负数的原码有很大的区别,反码通常用作求补码过程中的中间形式。反码表示的整数范围与原码相同。

(3)补码:正数的补码与其原码相同,负数的补码为其反码在最低位加1。

例如:X=+1011011    [X]原码=01011011  [X]补码=01011011

      Y=-1011011  [Y]原码=11011011  [Y]反码=10100100  [Y]补码=10100101

补码表示的整数范围是-2n-1~+(2n-1-1),其中n为机器字长。

则:8位二进制补码表示的整数范围是-128~+127,

16位二进制补码表示的整数范围是-32768~+32767。

(4)补码与真值之间的转换:给定机器数的真值可以通过补码的定义来完成真值到补码的转换,若已知某数的补码求其真值,计算方法如下:正数补码的真值等于补码的本身;负数补码转换为其真值时,将补码按位求反末位加1,即可得到该负数补码对应的真值。

【例】 给定 [X]补码=01011001B,求真值X;给定[X]补码=11011010B,求真值X。

(1)由于[X]补码代表的数是正数,则其真值:

X=+1011001B

=+(1×26+1×24+1×23+1×20)

=+(64+16+8+1)

=+(89)D

(2)由于[X]补码代表的数是负数,则其真值:

X=-([1011010]求反+1)B

=-(0100101+1)B

=-(0100110)B

=-(1×25+1×22+1×21)

=-(32+4+2)

=-(38)D

浮点数的表示:浮点数是属于有理数中某特定子集的数的数字表示,在计算机中用以近似表示任意某个实数。具体的说,这个实数由一个整数或定点数(即尾数)乘以某个基数(计算机中通常是2)的整数次幂得到,这种表示方法类似于基数为10的科学计数法。

单精度格式: 32位, 阶码E=8位, 尾数M=23位

双精度格式: 64位, E=11位, M=52位


精度与范围

单精度格式表示范围:-3.4*10^38~3.4*10^38。

双精度格式表示范围:1.7x10^(-308) ~ 1.7x10^308。

2.5.计算机常用的编码

1.美国信息交换标准代码(ASCII码)

  ASCII(American Standard Code for InformationInterchange)码是美国信息交换标准代码的简称,用于给西文字符编码,包括英文字母的大小写、数字、专用字符、控制字符等。这种编码由7位二进制数组合而成,可以表示128种字符,

   ASCII码是7位二进制编码,而计算机的基本存储单位是字节(byte),一个字节包含8个二进制位(bit)。因此,ASCII码的机内码要在最高位补一个0。在存储、处理和传送信息时,最高位常用作奇偶校验位,用来检验代码在存储和传送过程中是否发生错误。奇校验时,每个代码的二进制形式中应有奇数个1;偶校验时,每个代码的二进制形式中应有偶数个1。

2.二—十进制编码——BCD码

  BCD(Binary-Coded  Decimal)码又称为“二—十进制编码”,专门解决用二进制数表示十进数的问题。

“二—十进制编码”最常用的是8421编码,其方法是用4位二进制数表示1位十进制数,自左至右每一位对应的位权是8、4、2、1。

由于4位二进制数有0000~1111共16种状态,而十进制数0~9只取0000~1001的10种状态,其余6种不用。

通常,BCD码有两种形式,即压缩BCD码和非压缩BCD码。

(1)压缩BCD码:压缩BCD码的每一位数采用4位二进制数来表示,即一个字节表示两位十进制数。例如:十进制数59D,采用压缩BCD码表示为二进制数是01011001B。

(2)非压缩BCD码:非压缩BCD码的每一位数采用8位二进制数来表示,即一个字节表示1位十进制数。而且只用每个字节的低4位来表示0~9,高4位为0。例如:十进制数87D,采用非压缩BCD码表示为二进制数是00001000 00000111B。

3.汉字编码

具有汉字信息处理能力的计算机系统,除了配备必要的汉字设备和接口外,还应该装配有支持汉字信息输入、输出和处理的操作系统。计算机处理汉字信息的前提条件是对每个汉字进行编码,这些编码统称为汉字代码。目前计算机中常用的几种汉字代码有:

(1)汉字输入码:用于外部输入汉字,也称为外码。它位于人机界面上,面向用户,其编码原则是简单易记、操作方便、有利于提高输入速度。目前使用较多的有顺序码——将汉字按一定顺序排好,然后逐个赋予1个号码作为该汉字的编码,例如区位码;音码——根据汉字的读音进行编码,例如拼音码;形码——根据汉字的字形进行编码,例如五笔字型;音形码——根据汉字的读音和字形进行编码,例如双拼码。

如下图就是两种字形码的表示方法,这样的字形信息便于缩放和变换,并且字形美观。


点阵字形码:记录每个点的黑白       

矢量字形码:记录各点坐标和它们的关系

(2)汉字机内码:是汉字处理系统内部存储、处理汉字而使用的编码,简称内码。内码与国家标准GB2312-80汉字字符集有简明的一一对应关系。

(3)汉字交换码:是汉字信息处理系统之间或通信系统之间传输信息时,对每个汉字所规定的统一编码。我国已指定了汉字交换码的国家标准“信息交换用汉字编码字符集——基本集”,代号GB2321-80,又称“国标码”。

该字符集的内容由三部分组成:

第一部分是各类符号、各类数字以及各种字母、包括英文、俄文、罗马字母、日文平假名与片假名、拼音符号和制表字符,共687个,第二部分为常用汉字,有3755个汉字,通常占常用汉字的90%左右,按拼音字母顺序排列,以便于查找。第三部分为二级常用汉字,有3008个,按部首顺序排列。