计算机组成原理第六章计算机的运算方法

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第六章计算机的运算方法6.1无符号数和有符号数6.3定点运算6.2数的定点表示和浮点表示6.4浮点四则运算6.5算术逻辑单元6.6时序逻辑电路6.6数据校验码2一、考试范围(一)数制和编码进位计数制及其转换、真值和机器数、BCD码、字符和字符串、校验码。(二)定点数的表示和运算1、定点数的表示(有符号、无符号)2、定点数的运算移位运算;加减运算(原码、补码);乘/除运算;溢出概念和判别方法。3一、考试范围(三)浮点数的表示和运算1、浮点数的表示范围;IEEE754标准2、浮点数的加/减运算(单选题)(四)算术逻辑单元ALU1、串行加法器和并行加法器2、算术逻辑单元的功能和结构4二、复习要点1.了解进位数制及其相互转换、字符(包括汉字)、字符串和BCD数在计算机中的表示2.了解校验码引入的目的、原理及其应用3.理解本章的基本概念,如机器数、真值、最小码距、并行进位。4.理解定点数的表示原理,掌握定点数的运算、溢出的概念与判别方法,了解阵列乘法器。5.理解浮点数的表示,掌握浮点数的加减运算方法。6.理解算术逻辑单元相关术语的定义、ALU的基本功能、组成和结构。一、无符号数寄存器的位数反映无符号数的表示范围8位0~25516位0~655356.1无符号数和有符号数带符号的数符号数字化的数+0.101101011小数点的位置+110001100小数点的位置–110011100小数点的位置–0.101111011小数点的位置真值机器数1.机器数与真值二、有符号数6.1无符号数和有符号数2.原码表示法带符号的绝对值表示(1)定义整数x为真值n为整数的位数如x=+1110[x]原=0,1110[x]原=24+1110=1,1110x=1110[x]原=0,x2n>x≥02nx0≥x>2n用逗号将符号位和数值位隔开6.1无符号数和有符号数小数x为真值如x=+0.1101[x]原=0.1101x=0.1101[x]原=1(0.1101)=1.1101x1>x≥0[x]原=1–x0≥x>1x=0.1000000[x]原=1(0.1000000)=1.1000000x=+0.1000000[x]原=0.1000000用小数点将符号位和数值位隔开用小数点将符号位和数值位隔开6.1无符号数和有符号数(2)举例例6.1已知[x]原=1.0011求x解:例6.2已知[x]原=1,1100求x解:x=1[x]原=11.0011=0.0011x=24[x]原=100001,1100=1100––0.00111100由定义得由定义得6.1无符号数和有符号数例6.4求x=0的原码解:设x=+0.0000例6.3已知[x]原=0.1101求x解:∴x=+0.1101同理,对于整数[+0]原=0,0000[+0.0000]原=0.0000x=0.0000[0.0000]原=1.0000[0]原=1,0000∴[+0]原≠[0]原根据定义∵[x]原=0.11016.1无符号数和有符号数但是用原码做加法时,会出现如下问题:能否只做加法?找到一个与负数等价的正数来代替这个负数就可使减加加法正正加加法正负加法负正加法负负减减加要求数1数2实际操作结果符号正可正可负可正可负负6.1无符号数和有符号数(1)补的概念•时钟逆时针-363顺时针+9615-1233.补码表示法可见3可用+9代替记作3≡+9(mod12)同理4≡+8(mod12)5≡+7(mod12)时钟以12为模减法加法称+9是–3以12为模的补数6.1无符号数和有符号数结论一个负数加上“模”即得该负数的补数两个互为补数的数它们绝对值之和即为模数•计数器(模16)–101110110000+010110111000010110000?可见1011可用+0101代替记作1011≡+0101(mod24)同理011≡+101(mod23)0.1001≡+1.0111(mod2)自然去掉6.1无符号数和有符号数+0101(mod24)≡1011(mod24)(2)正数的补数即为其本身+10000+10000两个互为补数的数+0101+10101≡分别加上模结果仍互为补数∴+0101≡+0101+010124+1–10111,0101用逗号将符号位和数值位隔开丢掉10110,1,??1011(mod24)可见?+01010101010110110101+(mod24+1)100000=6.1无符号数和有符号数(3)补码定义整数x为真值n为整数的位数[x]补=0,x2n>x≥02n+1+x0>x≥2n(mod2n+1)如x=+1010[x]补=27+1+(1011000)=1000000001011000[x]补=0,1010x=10110001,0101000用逗号将符号位和数值位隔开6.1无符号数和有符号数小数x为真值x=+0.1110[x]补=x1>x≥02+x0>x≥1(mod2)如[x]补=0.1110x=0.11000001.0100000[x]补=2+(0.1100000)=10.00000000.1100000用小数点将符号位和数值位隔开6.1无符号数和有符号数(4)求补码的快捷方式=100000=1,011010101+1=1,0110又[x]原=1,1010则[x]补=24+11010=11111+11010=1111110101010当真值为负时,补码可用原码除符号位外每位取反,末位加1求得+1设x=1010时6.1无符号数和有符号数(5)举例解:x=+0.0001解:由定义得x=[x]补–2=1.0001–10.0000[x]原=1.1111例6.6已知[x]补=1.0001求x[x]补[x]原?由定义得例6.5已知[x]补=0.0001求x∴x=0.1111–=0.1111–6.1无符号数和有符号数例6.7解:x=[x]补–24+1=1,1110–100000[x]原=1,0010当真值为负时,原码可用补码除符号位外每位取反,末位加1求得[x]补[x]原?∴x=0010=0010求x已知[x]补=1,1110由定义得6.1无符号数和有符号数真值0,10001101,01110100.11101.00100.00000.00001.00000,10001101,10001100.11101.11100.00001.0000不能表示练习求下列真值的补码x=+70x=0.1110x=0.0000x=–70x=0.1110x=0.0000x=1.0000[1]补=2+x=10.00001.0000=1.0000[+0]补=[0]补由小数补码定义[x]补=x1>x≥02+x0>x≥–1(mod2)=1000110=–1000110[x]补[x]原6.1无符号数和有符号数4.反码表示法(1)定义整数[x]反=0,x2n>x≥0(2n+1–1)+x0≥x>2n(mod2n+11)如x=+1101[x]反=0,1101=1,0010x=1101[x]反=(24+11)1101=111111101用逗号将符号位和数值位隔开x为真值n为整数的位数6.1无符号数和有符号数小数x=+0.1101[x]反=0.1101x=0.1010[x]反=(22-4)0.1010=1.11110.1010=1.0101如[x]反=x1>x≥0(2–2-n)+x0≥x>1(mod22-n)用小数点将符号位和数值位隔开x为真值6.1无符号数和有符号数(2)举例例6.10求0的反码设x=+0.0000x=–0.0000[+0.0000]反=0.0000[–0.0000]反=1.1111∴[+0]反≠[–0]反解:同理,对于整数[+0]反=0,0000[–0]反=1,1111例6.9已知[x]反=1,1110求x由定义得x=[x]反–(24+1–1)=1,1110–11111=–0001例6.8已知[x]反=0,1110求x解:由定义得x=+1110解:6.1无符号数和有符号数三种机器数的小结对于正数,原码=补码=反码对于负数,符号位为1,其数值部分原码除符号位外每位取反末位加1补码原码除符号位外每位取反反码最高位为符号位,书写上用“,”(整数)或“.”(小数)将数值部分和符号位隔开6.1无符号数和有符号数例6.11000000000000000100000010…011111111000000010000001111111011111111011111111…128129-0-1-128-127-127-126二进制代码无符号数对应的真值原码对应的真值补码对应的真值反码对应的真值012127…253254255…-125-126-127…-3-2-1…-2-1-0…+0+1+2+127…+0+1+2+127…+0+1+2+127…+0设机器数字长为8位(其中一位为符号位)对于整数,当其分别代表无符号数、原码、补码和反码时,对应的真值范围各为多少?6.1无符号数和有符号数例6.12解:已知[y]补求[y]补Ⅰ[y]补=0.y1y2yn…y=0.y1y2yn…y=0.y1y2yn…[y]补=1.y1y2yn+2-n…Ⅱ[y]补=1.y1y2yn…[y]原=1.y1y2yn+2-n…y=(0.y1y2yn+2-n)…y=0.y1y2yn+2-n……[y]补=0.y1y2yn+2-n设[y]补=y0.y1y2yn…每位取反,即得[y]补[y]补连同符号位在内,末位加1每位取反,即得[y]补[y]补连同符号位在内,末位加16.1无符号数和有符号数5.移码表示法补码表示很难直接判断其真值大小如十进制x=+21x=–21x=+31x=–31x+25+10101+100000+11111+10000010101+10000011111+100000大大错错大大正确正确0,101011,010110,111111,00001+10101–10101+11111–11111=110101=001011=111111=000001二进制补码6.1无符号数和有符号数(1)移码定义x为真值,n为整数的位数移码在数轴上的表示[x]移码2n+1–12n2n–1–2n00真值如x=10100[x]移=25+10100用逗号将符号位和数值位隔开x=–10100[x]移=25–10100[x]移=2n+x(2n>x≥2n)=1,10100=0,011006.1无符号数和有符号数(2)移码和补码的比较设x=+1100100[x]移=27+1100100[x]补=0,1100100设x=–1100100[x]移=27–1100100[x]补=1,0011100补码与移码只差一个符号位=1,1100100=0,001110010016.1无符号数和有符号数-100000-11111-11110-00001±00000+00001+00010+11110+11111……真值x(n=5)[x]补[x]移[x]移对应的十进制整数(3)真值、补码和移码的对照表……012313233346263……000000000010000001011111100000100001100010111110111111……011111011110000010000001000000111111100010100001100000-100000±00000+111110000001111110000001000006.1无符号数和有符号数当x=0时[+0]移=25+0[–0]移=25–0∴[+0]移=[–0]移当n=5时最小的真值为–25[–100000]移可见,最小真值的移码为全0(4)移码的特点用移码表示浮点数的阶码能方便地判断浮点数的阶码大小=1,00000=1,00000=–100000=000000=25–1000006.1无符号数和有符号数小数点按约定方式标出一、定点表示SfS1S2Sn…数符数值部分小数点位置SfS1S2Sn…数符数值部分小数点位置或定点机小数定点机整数定点机原码补码反码–(1–2-n)~+(1–2-n)–(2n–1)~+(2n–1)–1~+

1 / 185
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功