




已阅读5页,还剩80页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机组成原理,毛典辉 北京工商大学计算机与信息工程学院 Email: ,第二章 数据在计算机中的表示,数据、信息,数据:是对事实、概念或指令的一种特殊表达形式,可以用人工方式或自动化装置进行通信、翻译转换或加工处理。 信息:对人有用的数据,这些数据可能影响到人们的行为和决策。 数据类型 数值型数据:具有特定值的一类数据,可用来表示数量的多少,可比较其大小。数字符号的表示方式(定点、浮点) 非数值型数据:包括字符数据、逻辑数据、图画、声音和活动图像数据等。非数字符号的表示(ASCII、汉字、图形等),计算机内部采用的二进制表示方式的原因,二进制只有两个数码“0”和“1”,易于用物理器件表示。这些物理状态都是不同的质的变化,形象鲜明、易于区别,并且数的存储、传送和处理可靠性高。 运算规则简单,操作实现容易。 二进制加、减、乘、除运算,可以归结为加、减、移位三种操作。 理论和实践证明,采用R= e =2.71828进制时,存储设备最省,取3比取2更节省设备,但二进制比三进制易于表示 二进制中的“1”和“0”与逻辑命题中的“真”、“假”相对应,为计算机实现逻辑运算和程序中的逻辑判断创造了良好条件。,进位基数和位的权数,基数:计数制中用到的数码的个数,用R表示。 位权:以基数为底的指数,指数的幂是数位的序号。 对一个数S,其基数为R,则:,计算机常用各种进制数的表示,二、八、十六进制数转换为十进制数,例2-1 将(11011.11)2转换为十进制数,例2-2 将(732.6)8转换为十进制数 解: (732.6)8 =782+381+280+68-1 =(474.75)10 例2-3 将(A5C.B2)16转换为十进制数 解: (A5C.B2)16 =10162+5161+12160+1116-1+216-2 =(2652.6953125)10,解: (11011.11) 2 =124+123+022+121+120+12-1 +12-2 =(27.75)10,十进制转换为二进制数,任一十进制数N,N=N整+N小。将这两部分分开转换 整数部分的转换:采用“除2求余法”,转换方法为:连续用2除,求得余数(1或0)分别为K0、K1、K2、,直到商为0,所有余数排列Kn-1Kn-2K2K1K0 即为所转换的二进制整数部分。 小数部分的转换:采用“乘2取整法”。转换方法为:连续用2乘,依次求得各整数位(0或1)K-1、K-2、K-m,直到乘积的小数部分为0。在小数转换过程中,出现Fi恒不为0时,可按精度要求确定二进制小数的位数。,十进制转换为二进制数,解: 除以2 商Qi 余数Ki 43/2 21 K0=1 21/2 10 K1=1 10/2 5 K2=0 5/2 2 K3=1 2/2 1 K4=0 1/2 0 K5=1 (43)10=(101011)2,例2-4 求(43)10的二进制表示,十进制转换为二进制数,解: 乘以2 小数Fi 整数Ki 0.68752 0.3750 K-1=1 0.37502 0.7500 K-2=0 0.75002 0.5000 K-3=1 0.50002 0.0000 K-4=1 (0.6875)10=(0.1011)2,例2-5 求(0.6875)10的二进制值,二进制数与八进制、十六进制数间的转换,二进制转化成八(十六)进制 整数部分:从右向左按三(四)位分组,不足补零 小数部分:从左向右按三(四)位分组,不足补零,例2-9 (001 011 010 110.101 011 100) 2= (1326.534.) 8 1 3 2 6 5 3 4 例2-10 (0101 1101.0101 1010) 2= (5D.5A) 16 5 D 5 A,八进制、十六进制数与二进制数间的转换,八(十六)进制转化成二进制 一位八进制数对应三位二进制数 一位十六进制数对应四位二进制数 例2-11 (247.63)8= (010 100 111.110 011)2 例2-12 (F5A.6B) 16= (1111 0101 1010 0110.0110 1011) 2,定点数和浮点数,计算机在数据、文字的表示方式时,应该考虑一下几个因素: 表示的数据类型(符号、小数点、数值) 数值的范围 数值精度 存储、处理、传送的硬件代价 计算机常用的数据表示格式有两种: 定点表示:小数点位置固定 浮点表示:小数点位置不固定,定点纯小数,x0 x1 x2 x3 xn-1 xn 表示数的范围是 0|12n (最小数、最大数、最接近0的正数、最接近0的负数),符号,量值,小数点固定于符号位之后,不需专门存放位置,3、定点纯整数 x0 x1 x2 x3 xn-1 xn 表示数的范围是 0|2n1 最小数、最大数、最接近0的正数、最接近0的负数呢,符号,量值,小数点固定于最后一位之后,不需专门存放位置,定点纯整数,4、定点表示法的特点 定点数表示数的范围受字长限制,表示数的范围有限; 定点表示的精度有限 计算机中整数运算常用定点数表示;,如果用定点表示,则如何表示实数(包括小数和整数)呢? -引入浮点,二、浮点表示,计算机中 r 取 2、4、8、16 等,当 r = 2,N = 11.0101,= 0.110101210,= 1.1010121,= 1101.012-10,= 0.001101012100,计算机中 S 小数、可正可负,j 整数、可正可负,规格化数,1. 浮点数的表示形式,Sf 代表浮点数的符号,n 其位数反映浮点数的精度,m 其位数反映浮点数的表示范围,jf 和 m 共同表示小数点的实际位置,2( 2m1)( 1 2n),2( 2m1)2n,2( 2m1)( 1 2n),2( 2m1)2n,215 ( 1 2-10),2-15 2-10,2-15 2-10,215 ( 1 2-10),上溢 阶码 最大阶玛 下溢 阶码 最小阶码 按 机器零 处理,浮点数的表示范围,练习,设机器数字长为 24 位,欲表示3万的十进制数,试问在保证数的最大精度的前提下,除阶符、数符各 取1 位外,阶码、尾数各取几位?,满足 最大精度 可取 m = 4,n = 18,解:,3. 浮点数的规格化形式,r = 2,尾数最高位为 1,r = 4,尾数最高 2 位不全为 0,r = 8,尾数最高 3 位不全为 0,4. 浮点数的规格化,r = 2,左规 尾数左移 1 位,阶码减 1,右规 尾数右移 1 位,阶码加 1,r = 4,左规 尾数左移 2 位,阶码减 1,右规 尾数右移 2 位,阶码加 1,r = 8,左规 尾数左移 3 位,阶码减 1,右规 尾数右移 3 位,阶码加 1,基数 r 越大,可表示的浮点数的范围越大,基数不同,浮点数的 规格化形式不同,基数 r 越大,浮点数的精度降低,例如:,最大正数,= 215( 1210 ),最小正数,最大负数,最小负数,= 21521,= 215( 12 10 ),= 216,= 21521,= 216,设 m = 4,n = 10,尾数规格化后的浮点数表示范围,三、举例,解:,二进制形式,定点表示,浮点规格化形式,000,x = 0.0010011,x = 0.0010011,x = 0.10011000002-10,数的机器码表示,问题 计算机中数据进行运算操作,符号位如何表示?是否与数值位一起参与运算?如果是,会给运算带来什么样的影响。,1. 原码表示法,带符号的绝对值表示,(1) 定义,整数,x 为真值,n 为整数的位数,如,x = +1110,x原 = 0 , 1110,x原 = 24 + 1110 = 1 , 1110,用 逗号 将符号位 和数值位隔开,小数,x 为真值,如,x = + 0.1101,x原 = 0 . 1101,x = + 0.1000000,x原 = 0 . 1000000,用 小数点 将符号 位和数值位隔开,用 小数点 将符号 位和数值位隔开,(2) 举例,已知 x原 = 1.0011 求 x,解:,已知 x原 = 1,1100 求 x,解:,0.0011,1100,由定义得,由定义得,例 求 x = 0 的原码,解:,设 x = +0.0000,同理,对于整数,+ 0原 = 0,0000,+0.0000原 = 0.0000,原码的特点:,简单、直观,但是用原码做加法时,会出现如下问题:,能否 只做加法 ?,加法 正 正,加,加法 正 负,加法 负 正,加法 负 负,减,减,加,正,可正可负,可正可负,负,(1) 补的概念,时钟,逆时针,顺时针,3. 补码表示法,时钟以 12为模,称 + 9 是 3 以 12 为模的补数,结论,一个负数加上 “模” 即得该负数的补数,两个互为补数的数 它们绝对值之和即为 模 数,计数器(模 16), 1011,1011,0000,+ 0101,1011,10000,(mod24),(2) 正数的补数即为其本身,两个互为补数的数,分别加上模,结果仍互为补数, + 0101 + 0101,+ 0101,24+1 1011,1,0101,用 逗号 将符号位 和数值位隔开,(mod24),可见,?,+ 0101,0101,0101,1011,0101,+,(mod24+1),100000,=,(3) 补码定义,整数,x 为真值,n 为整数的位数,如,x = +1010,= 100000000,x补 = 0,1010,1,0101000,用 逗号 将符号位 和数值位隔开,小数,x 为真值,x = + 0.1110,如,x补 = 0.1110,1.0100000,= 10.0000000,(4) 求补码的快捷方式,= 100000,= 1,0110,10101 + 1,= 1,0110,又x原 = 1,1010,+ 1,(5) 举例,解:,x = + 0.0001,解:由定义得,x = x补 2,= 1.0001 10.0000,x原 = 1.1111,由定义得,例,解:,x = x补 24+1,= 1,1110 100000,x原 = 1,0010,由定义得,真值,0, 1000110,1, 0111010,0.1110,1.0010,0.0000,0.0000,1.0000,0,1000110,1,1000110,0.1110,1.1110,0.0000,1.0000,不能表示,练习,求下列真值的补码,由小数补码定义,= 1000110,= 1000110,x补 x原,4. 反码表示法,(1) 定义,整数,如,x = +1101,x反 = 0,1101,= 1,0010,x 为真值,n 为整数的位数,小数,x = +0.1101,x反 = 0.1101,= 1.0101,如,x 为真值,(2) 举例,例 求 0 的反码,设 x = +0.0000,x = 0.0000,+0.0000反= 0.0000, 0.0000反= 1.1111, + 0反 0反,解:,同理,对于整数,+0反= 0,0000, 0反= 1,1111,例 已知 x反 = 1,1110 求 x,= 1,1110 11111,= 0001,例 已知 x反 = 0,1110 求 x,解:,由定义得 x = + 1110,解:,三种机器数的小结,对于正数,原码 = 补码 = 反码,-0,-1,-128,-127,-127,-126,-3,-2,-1,设机器数字长为 8 位(其中一位为符号位) 对于整数,当其分别代表无符号数、原码、补码和 反码时,对应的真值范围各为多少?,例,解:,5. 移码表示法,补码表示很难直接判断其真值大小,如,十进制,x + 25,+10101 + 100000,+11111 + 100000,错,错,正确,正确,0,10101,1,01011,0,11111,1,00001,+10101, 10101,+11111, 11111,= 110101,= 001011,= 111111,= 000001,二进制,补码,(1) 移码定义,x 为真值,n 为 整数的位数,移码在数轴上的表示,如,x = 10100,x移 = 25 + 10100,用 逗号 将符号位 和数值位隔开,x = 10100,x移 = 25 10100,= 1,10100,= 0,01100,(2) 移码和补码的比较,设 x = +1100100,x移 = 27 + 1100100,x补 = 0,1100100,设 x = 1100100,x移 = 27 1100100,x补 = 1,0011100,补码与移码只差一个符号位,= 1,1100100,= 0,0011100,1,0,0,1,(3) 真值、补码和移码的对照表,- 1 0 0 0 0 0, 0 0 0 0 0,+ 1 1 1 1 1,0 0 0 0 0 0,1 1 1 1 1 1,0 0 0 0 0 0,1 0 0 0 0 0,当 x = 0 时,+0移 = 25 + 0, 0移 = 25 0, +0移 = 0移,当 n = 5 时,最小的真值为 25, 100000移,可见,最小真值的移码为全 0,(4) 移码的特点,用移码表示浮点数的阶码,能方便地判断浮点数的阶码大小,= 1,00000,= 1,00000,= 100000,= 000000,= 25100000,x = 111010,0000,例,将 58 表示成二进制定点数和浮点数,并写出它在定点机和浮点机中的三种机器数及阶码为移码,尾数为补码的形式,其中数值部分均取 10 位,数符取 1 位,浮点数阶码取 5 位(含1位阶符)。,解:,设 x = 58,二进制形式,定点表示,浮点规格化形式,x原 = 1, 0000111010,x补 = 1, 1111000110,x反 = 1, 1111000101,x原 = 0, 0110; 1. 1110100000,x补 = 0, 0110; 1. 0001100000,x反 = 0, 0110; 1. 0001011111,定点机中,浮点机中,x阶移、尾补 = 1, 0110; 1. 0001100000,x = 111010,x = (0.1110100000) 2110,例,写出对应下图所示的浮点数的补码 形式。 设 n = 10,m = 4, 阶符、数符各取 1位。,解:,真值,最大正数,最小正数,最大负数,最小负数,215(1 210),215 210,215 210,215(1 210),0,1111; 0.1111111111,1,0001; 0.0000000001,1,0001; 1.1111111111,0,1111; 1.0000000001,补码,当浮点数 尾数为 0 时,不论其阶码为何值 按机器零处理,机器零,当浮点数 阶码等于或小于它所表示的最小 数 时,不论尾数为何值,按机器零处理,如 m = 4 n = 10,当阶码用移码,尾数用补码表示时,机器零为,有利于机器中“ 判 0 ” 电路的实现,当阶码和尾数都用补码表示时,机器零为,四、IEEE 754 标准,符号位 S 阶码 尾数 总位数,1 8 23 32,1 11 52 64,1 15 64 80,尾数为规格化的原码表示,非 “0” 的有效位最高位为 “1”(隐含),IEEE754标准 基数R=2,基数固定,采用隐含方式来表示它。 32位的浮点数: S数的符号位,1位,在最高位,“0”表示正数,“1”表示负数。 M是尾数, 23位,在低位部分,采用纯小数表示 E是阶码,8位,采用移码表示。移码比较大小方便。 尾数域最左位(最高有效位)总是1, 故这一位经常不予存储,而认为隐藏在小数点的左边。 32位浮点数中阶码域为8位,应将指数e加上一个固定的偏移值127(01111111),即E=e+127。 64位的浮点数中阶码域11位,尾数域52位,指数偏移值是1023,一个规格化的32位浮点数x的真值表示为 x=(-1)S(1.M)2(E-127) e=E-127,指数e=阶码-127=10000010-01111111=00000011=(3)10 包括隐藏位1的尾数 1.M=1.011 0110 0000 0000 0000 0000=1.011011 于是有 x=(-1)S1.M2e=+(1.011011)23=+1011.011=(11.375)10,例 若浮点数x的754标准存储格式为(41360000)16,求其浮点数的十进制数值。,解:将16进制数展开后,可得二制数格式为 0 100 00010011 0110 0000 0000 0000 0000 S 阶码(8位) 尾数(23位) ,e=4于是得到: S=0, E=4+127=131, M=010010011 最后得到32位浮点数的二进制存储格式为: 01000001101001001100000000000000=(41A4C000)16,例2 将数(20.59375)10转换成754标准的32位 浮点数的二进制存储格式。,解:首先分别将整数和分数部分转换成二进制数: 20.59375=10100.10011 然后移动小数点,使其在第1,2位之间 10100.10011=1.01001001124,十进制数据表示,4、十进制数串的表示 字符串形式 BCD(压缩) 编码方式 有权码: (8421码、2421码、5211码) 无权码: (余三码、格雷码) 自定义数据表示,字符编码 ASCII码,“美国标准信息交换代码”(American Standard Code for Information Interchange),简称ASCII码。7位二进制编码,可表示27=128个字符。 ASCII码中,编码值031不对应任何可印刷(或称有字形)字符,通常称它们为控制字符,用于通信中的通信控制或对计算机设备的功能控制。编码值为32的是空格(或间隔)字符SP。编码值为127的是删除控制DEL码。其余的94个字符称为可印刷字符。,ASCII字符编码表,0-3位,4-7位,EBCDIC码,EBCDIC码 Extended Binary Coded Decimal Interchange Code,扩展BCD码,是8位二进制编码,可以表示256个编码状态,但只选用其中一部分。 主要用在IBM公司生产的各种机器中。,汉字的表示,特点: (1)汉字是一种象形文字,据统计,从甲骨文至今约有六万左右的汉字。目前常见的汉字有约七千个。 (2)汉字字形结构复杂,笔划繁多。 (3)汉字同音字多,多音字多。 涉及多种编码:,汉字的输入编码,数字编码 国标区位码,用数字串代表一个汉字输入 字音编码 以汉字拼音为基础的输入方法 字形编码 用汉字的形状(笔划)来进行的编码 例如五笔字形 混合编码,汉字交换码,汉字交换码是不同的汉字处理系统之间交换信息用的编码 汉字也是一种字符 1981年我国制定了信息交换用汉字编码字符集基本集GB2312-80国家标准(简称国标码)。每个汉字的二进制编码用两个字节表示。共收录一级汉字3755个,二级汉字3008个,各种符号682个,共计7445个,汉字内码,汉字内码是用于汉字信息的存储、检索等操作的机内代码,一般采用两个字节表示 汉字内码有多种方案,常以国标码为基础的编码 例如,将国标码两字节的最高位置1后形成 汉字“啊”的国标码 3021H (0011 0000 0010 0001) 对应的汉字内码 B0A1H (1011 0000 1010 0001),字模码,汉字的字模码为: 16位 16位=32字节,汉字字模点阵及编码,汉字的表示方法,汉字的输入编码、交换码、汉字内码、字模码是计算机中用于输入、内部处理、交换、输出四种不同用途的编码。,字符代码化(输入),数据校验码,1、数据校验的实现原理:数据校验码是在合法的数据编码之间,加进一些不允许出现的(非法的)编码,使合法的数据编码出现错误时成为非法编码。这样就可以通过检测编码的合法性达到发现错误的目的。,奇偶校验码,1、奇偶校验码:它是在被传送的n位信息组上, 加上一个二进制位作为校验位,使配置后的n+1位二进制代码中1的个数为奇数( 奇校验)或偶数(偶校验)。 例: 数据 奇校验编码 偶校验编码 00000000 100000000 000000000 01110101 001110101 101110101 其中,最高一位为校验位,其余低八位为数据位。 2、奇偶校验码只能检测出数据代码中一位出错的情况,但无法判断差错所发生的位置。常用于存储器读写检查,或ASCII字符传送过程中的检查。,海明校验码,1原理 在数据位中加入几个校验位,将数据代码的码距均匀地拉大,并把数据的每个二进制位分配在几个奇偶校验组中。当某一位出错后,就会引起有关的几个校验位的值发生变化,不但可以发现错误,还能指出是哪一位出错,为进一步自动纠错提供依据。 2编码规则 若海明码最高位号为m,最低位号为1,即HmHm-1H2H1,则海明码的编码规则是:,校验位与数据位之和为m,每个校验位Pi在海明码中被分在位号2i-1的位置上,其余各位为数据位,并按从低向高逐位依次排列的关系分配各数据位。 海明码的每一位位码Hi(包括数据位和校验位)由多个校验位校验,其关系是被校验的每一位位号要等于校验它的各校验位的位号之和。,海明码的组成需增添 ?位检测位,检测位的位置 ?,检测位的取值 ?,2k n + k + 1,2i ( i = 0、1、2 、3 ),检测位的取值与该位所在的检测“小组” 中 承担的奇偶校验任务有关,组成海明码的三要素,4.2,2 . 海明码的组成,二分组原则 例如: N=11 K=7 r=4 相应海明码可示意为 位号 1 2 3 4 5 6 7 8 9 10 11 P占位 P1 P2 P4 P8 其中均为有效信息,海明码中的每一位分别被P1P2P4P8 Pr 中的一至若干位所校验,其规律是: 第i位由校验位位号之和等于i的那些校验位所校验 归并起来: 形成了4个小组,每个小组一个校验位,校验位的取值,仍采用奇偶校验方式确定. 可知: 每个校验位由其本身校验; 每个数据位由若干校验位校验。,例4.4,求 0101 按 “偶校验” 配置的海明码,解:, n = 4,根据 2k n + k + 1,得 k = 3,海明码排序如下:,C1 C2 C4,0, 0101 的海明码为 0100101,4.2,1,0,按偶原则配置 0011 的海明码,C1 C2 C4,1 0 0,解:, n = 4 根据 2k n + k + 1,取 k = 3, 0011 的海明码为 1000011,练习1,4.2,3. 海明码的纠错过程,形成新的检测位 Pi,如增添 3 位 (k = 3),新的检测位为 P4 P2 P1,以 k = 3 为例,Pi 的取值为,对于按 “偶校验” 配置的海明码,不出错时 P1= 0,P2 = 0,P4 = 0,C1,C2,C4,其位数与增添的检测位有关,4.2,以4位有效信息(b1、b2、b3、b4)和3位校验位(P1、P2、P3)为例: K=4 r=3 海明序号 1 2 3 4 5 6 7 海明码 P1 P2 b1 P3 b2 b3 b4 根据表2-8可以看到 (1)每个小组只有一位校验位,第一组是P1、第二组是P2 、第三组是P3。 (2)每个校验位校验着它本身和它后面的一些确定位。,无错,有错,有错, P4P2P1 = 110,第 6 位出错,可纠正为 0100101, 故要求传送的信息为 0101。,纠错过程如下,例4.5,解:,4.2,练习2, P4 P2 P1 = 100,第 4 位错,可不纠,配奇的海明码为 0101011,4.2,循环冗余校验码(CRC),1CRC的编码方法 n是有效数据信息位位数,r是校验位位数。总长k= n+r 位,称(k,n)码。 设待编码的有效信息以多项式M(x)表示,将M(x)左移r位得到多项式M(x)Xr,使低r位二进制位全为零,然后除以生成多项式G(x),求得的余数即为校验位。为了得到r位余数(校验位),G(X)必须是r+1位的。,2模2运算:不考虑借位和进位 (1)模2加减:可用异或门
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025关于制定个人的汽车租赁合同范本
- 2025北京市家具买卖合同范本(桌椅类)
- 妊娠合并缺铁性贫血
- 小说家创作艺术与职业发展全解析
- 幼儿园医学启蒙教育
- 河北省衡水市2024-2025学年高二下学期4月期中联考试题 生物 含答案
- 浙江省衢州市五校联盟2024-2025学年高二下学期期中联考语文试卷(PDF版含答案)
- 委托勘察业务协议
- 某酒吧的广告策划
- 某房地产贩卖技巧培训
- 教学茶树植物保护茶树常见害虫及防治
- 连用文件云通用方案
- 电力安装EC总承包工程技术投标文件
- 施工单位与劳务分包工程量结算单
- 广告设计制作、施工安装及售后服务方案
- 线段的垂直平分线(第1课时) 教学设计
- 建筑工程概预算智慧树知到答案章节测试2023年浙江广厦建设职业技术大学
- 合肥一中2021-2022学年第一学期高一年级期末考试数学试卷
- 数据出境安全评估申报指南(第一版)
- GB/T 3164-2007真空技术图形符号
- GB/T 1048-2019管道元件公称压力的定义和选用
评论
0/150
提交评论