您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 其它相关文档 > 第2章 运算方法和运算器6(1)
11计算机组第二章运算方法和运算器•数制•数据表示•定点运算组成原理1•定点运算•定点运算器的构成与实例•浮点数的加减运算计算机组数制与数据表示研究目标•数据在计算机中的表示方法及编码形式•掌握进位计数制和数制之间的转换•掌握数与字符的表示方法及校验方法具体内容包括组成原理2具体内容包括:•计数制和数制之间的转换•定点数和浮点数•带符号数的表示方法•字符编码•数据校验码计算机组数制计算机内部采用的二进制表示方式的原因:1.二进制只有两个数码“0”和“1”,易于用物理器件表示。这些物理状态都是不同的质的变化,形象鲜明、易于区别,并且数的存储、传送和处理可靠性高。2.运算规则简单,操作实现容易组成原理33.二进制加、减、乘、除运算,可以归结为加、减、移位三种操作。4.理论和实践证明,采用R=e=2.71828进制时,存储设备最省,取3比取2更节省设备,但二进制比三进制易于表示。5.二进制中的“1”和“0”与逻辑命题中的“真”、“假”相对应,为计算机实现逻辑运算和程序中的逻辑判断创造了良好条件。进位基数和位的权数•基数:计数制中用到的数码的个数,用R表示。•位权:以基数为底的指数,指数的幂是数位的序号。•对一个数S,其基数为R,则:对个数S,其基数为,则:n-1n-2210-1-2-mn-1n-210n-1n-210-1-m-1-mn-1iii-m()(KKKKK.KKK)(KRKRKRKRKRKR)KRRS计算机常用各种进制数进位制二进制八进制十进制十六进制规则逢二进一逢八进一逢十进一逢十六进一基数R=2R=8R=10R=16基本符号0101270129019AF基本符号0,10,1,2,…,70,1,2,…,90,1,..,9,A,..,F权2i8i10i16i形式表示BODH数制之间的相互转换•二、八、十六进制数转换为十进制数•十进制数转换为二、八、十六进制数–十进制数转换为二进制进制数转换为进制六进制数–十进制数转换为八进制、十六进制数•二进制数和八进制数、十六进制数的转换–二进制数转换为八、十六进制数–八、十六进制数转换为二进制数22二、八、十六进制数转换为十进制数例:将(11011.11)2转换为十进制数解:(11011.11)2=1×24+1×23+0×22+1×21+1×20+1×2-1+1×2-2=(27.75)10例:将(A5C.B2)16转换为十进制数解:(A5C.B2)16=10×162+5×161+12×160+11×16-1+2×16-2=(2652.6953125)10十进制转换为二进制数任一十进制数N,N=N整+N小。将这两部分分开转换:•整数部分的转换:采用“除2求余法”,转换方法为:连续用2除,求得余数(1或0)分别为K0、K1、K2、…,直到商为0,所有余数排列Kn-1Kn-2…K2K1K0即为所转换的二进制整数部分。•小数部分的转换:采用“乘2取整法”。转换方法为:连续用2乘,依次求得各整数位(0或1)K-1、K-2、…、K-m,直到乘积的小数部分为0。在小数转换过程中,出现Fi恒不为0时,可按精度要求确定二进制小数的位数。例:求(43)10的二进制表示解:除以2商Qi余数Ki43/221K0=121/210K1=1110/25K2=05/22K3=12/21K4=01/20K5=1(43)10=(101011)2例:求(0.6875)10的二进制值解:乘以2小数Fi整数Ki0.6875×20.3750K-1=10.3750×20.7500K-2=00.7500×20.5000K-3=10.5000×20.0000K-4=1(0.6875)10=(0.1011)2二进制数与八进制、十六进制数间的转换二进制转化成八(十六)进制•整数部分:从右向左按三(四)位分组,不足补零•小数部分:从左向右按三(四)位分组,不足补零例(001011010110.101011100)2=(1326.534)81326534例(01011101.01011010)2=(5D.5A)165D5A八进制、十六进制数与二进制数间的转换•八(十六)进制转化成二进制–一位八进制数对应三位二进制数–一位十六进制数对应四位二进制数例(247.63)8=(010100111.110011)2例(F5A.6B)16=(111101011010.01101011)233计算机组第二章运算方法和运算器•数制•数据表示•定点运算组成原理13•定点运算•定点运算器的构成与实例•浮点数的加减运算计算机组数据与文字的表示方法•计算机中使用的数据可分成两大类:–非数值型数据(符号数据):包括字符数据、逻辑数据、图画、声音和活动图像数据等。–数值数据:具有特定值的一类数据,可用来表示数量的多少,可比较其大小(定点、浮组成原理14点)。•计算机数据和字符的表示方法应有利于数据的存储、加工(处理)、传送;•编码:用少量、简单的基本符号,选择合适的规则表示尽量多的信息,同时利于信息处理(速度、方便)。数据表示的发展:数据表示即数据类型不是一开始就有多种多样,有一个随应用需要而发展的过程。•早期只有定点表示,表示数的范围很有限;•为扩大数的表示范围而出现了浮点数表示;•计算机应用扩大到商业和事务处理,出现了字符串数据;•向量数据表示。•多媒体数据一般介绍数值型数据(能进行算术运算能得到明确数值概念的数字数据)非数值型数据(以数字数据形式进入计算机的声音、图像、文字等信息)二进制(定点、浮点)十进制(二-十进制)字符型逻辑型2.1数据表示2.1.1概述一、什么叫数据表示是指能由计算机硬件直接识别的数据类型,如定点数、浮点数等。而所谓“由硬件直接识别”意味着某种数据类型可以用计算机硬件直接表示出来,并能由计算机指令直接调用该数据类型。二、为什么要研究数据表示问题(重要性)数据是计算机处理加工的对象,数据的表示方法直接影响计算机的结构和性能。了解计算机中数据表示是了解计算机各主要部件工作原理的必要基础。“狭义”的数据与“广义”的数据2.1.2数值型数据的表示方法数值型数据包括无符号数和有符号数两类.★无符号数:没有符号的数;★有符号数:符号“+”或“-”在有效数字的前面.注意:在相同机器字长的情况下,无符号数与有符号数所对应的数值范围不同.一、数的机器码表示真值号值表值★★真值:正负号加绝对值表示的数值;★★机器数:因为“+”与“-”号在计算机中无法识别,故需要把数的符号数码化.在计算机中使用的连同数符一起数码化的数称为机器数.通常约定二进制数的最高位为符号位,“0”代表正号,“1”代表负号.常见的机器数有原码、反码、补码等.例如:1101若为原码机器数,则其真值为–5二、数据格式1、定点数(Fix-PointNumber)•含义:定点、浮点的“点”都指二进制数中的小数点.定点指小数点位置固定.•小数点不占位,隐含.•定点数分为定点小数(纯小数)和定点整数(纯整数).符号位数值部分小数点位置小数点位置符号位数值部分小数点位置小数点位置定点整数定点小数如+0.1011,在机器中表示为:01011如+1101,在机器中表示为:0110144三种编码的定义:原码定点小数[x]原=定点整数[x]原=反码定点小数[]X1x≥01-x=1+|x|0≥x-1X2nx≥02n-x=2n+|x|0≥x-2nX10定点小数[x]反=定点整数[x]反=补码定点小数[x]补=定点整数[x]补=X1x≥0(2-2-n)+x0≥x-1X2nx≥0(2n+1-1)+x0≥x-2nX1x≥02+x=2-|x|0≥x≥-1X2nx≥02n+1+x=2n+1-|x|0≥x≥-2n(1)定点数常见的三种机器码编码形式例:X=‒0.101101,Y=+101101[X]原=1.101101[Y]原=0101101[X]反=1.010010[Y]反=0101101[X]补=1.010011[Y]补=0101101(2)三种编码的比较a)最高位都表示符号位,补码和反码的符号位可作为数值的一部分看待,和数值位一起参加运算;但原码的符号位不允许和数值位同等看待,必须分开进行处理.b)对于正数,它们的表示形式相同,即符号位为“0”,数值部分和真值相同.而对于负数各有不同的表示.c)不同码制中真值0的表示方法不同对于真值0,原码和反码各有两种不同的表示形式,而补码只有唯一的一种表示形式。假设字长为8位,则:[+0]原=00000000[]原[-0]原=10000000[+0]补=[-0]补=00000000[+0]反=00000000[-0]反=11111111d)定点数的表示范围原码、反码表示的正、负数范围相对零来说是对称的,但补码负数表示范围较正数表示范围宽,能多表示一个最负的数(绝对值最大的负数),其个最负的数(绝对值最大的负数),其值等于-2n(纯整数)或-1(纯小数)。原因是原码和反码的真值0各有两种不同的表示形式,而补码只有唯一的一种表示形式。•定点数的表示数的范围(字长为n+1位)•小数表数范围:–原码–(1–2-n)≤N≤1–2-n–补码–1≤N≤1–2-n–反码–(1–2-n)≤N≤1–2-n•整数表数范围:–原码–(2n–1)≤N≤2n–1–补码–2n≤N≤2n–1–反码–(2n–1)≤N≤2n–1特别注意补码的最小负数表示•习题:P.69第1、2题•1、写出下列各数的原码、反码、补码表示(用8位二进制数)。其中MSB是最高位(又是符号位),LSB是最低位。如果是小数,小数点在MSB之后;如果是整数,小数点在LSB之后。•(1)–35/64(2)23/128(3)–127•(4)用小数表示–1(5)用整数表示–1•解答:(1)现将-35/64写成二进制真值•-100011×2-6=-0.100011•原码:1.1000110反码:1.0111001•补码:1.011101055•(2)先将23/128写成二进制真值为•10111×2-7=0.0010111•原码:0.0010111•反码:0.0010111•补码:0.0010111•(3)先将-127写成二进制真值为-1111111•原码:11111111(1,1111111)原码:11111111(1,1111111)•反码:10000000(1,0000000)•补码:10000001(1,0000001)•(4)用小数表示-1:原码与反码的小数表示中没有-1;补码表示的小数-1为1.0000000•(5)用整数表示-1:原码为10000001;反码为11111110;补码为11111111。•2、设[X]补=a0.a1a2···a6,其中ai取0或1,若要•x〉–0.5,求a0,a1,a2,···,a6的取值。•补充题:将下列数由小到大排序:16,1010.11B,25.3Q,[X1]补=10001101,1CH,[X2]反=01001101,0110.1001BCD,[X3]原=10101011,[X4]补=10111111,-[X5]补=10100101•解题要点:•(1)统一各个数的表示形式,一般均表示为十进制()•(2)所需知识:了解B(binary)、Q(octal)、D(Decimal)、H(Hexadecimal)、BCD(Binary-CodedDecimal,简称BCD,即二-十进制编码)含义;各种进制数向十进制的转换;机器码求真值。•以上十个数由小到大排序结果:•X1,X3,X4,0110.1001BCD,1010.11B,16,25.3Q,1CH,X2,X5例.已知:机器字长16位,定点表示,尾数15位,数符1位,问:(1)定点原码整数表示时,最大正数是多少?最小负数是多少?(2)定点原码小数表示时,最大正数是多少?最小负数是多少?解:(1)定点原码整数表示:最小负整数表示:1111111111111111整(215)(32)最小负整数=-(215-1)10=(-32767)10最大正整数表示:0111111111111111最大正整数=(
本文标题:第2章 运算方法和运算器6(1)
链接地址:https://www.777doc.com/doc-5956528 .html