计算机组成原理3单元6-1计算机运算方法_第1页
计算机组成原理3单元6-1计算机运算方法_第2页
计算机组成原理3单元6-1计算机运算方法_第3页
计算机组成原理3单元6-1计算机运算方法_第4页
计算机组成原理3单元6-1计算机运算方法_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第6章计算机的运算方法教学单元三:无符号数和有符号数教学目标:(1)掌握机器数与真值,以及原码、补码和反码表示;(2)掌握各种码制相互变换的方法以及各种码制对应的真值范围;(3)掌握移码表示,以及移码和补码之间的转换。6.1无符号数和有符号数6.3定点运算6.2数的定点表示和浮点表示6.4浮点四则运算6.5算术逻辑单元6.1无符号数和有符号数一、无符号数寄存器的位数反映无符号数的表示范围8位0~25516位0~65535带符号的数符号数字化的数+0.10110

1011小数点的位置+11000

1100小数点的位置–11001

1100小数点的位置–0.10111

1011小数点的位置真值机器数1.机器数与真值二、有符号数2.原码表示法带符号的绝对值表示(1)定义整数x

为真值n

为整数的位数如x=+1110[x]原

=0,1110[x]原

=24+1110=1,1110x=

1110[x]原=0,x2n

x

≥02n

x0≥

x

>2n用逗号将符号位和数值部分隔开小数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用小数点将符号位和数值部分隔开用小数点将符号位和数值部分隔开(2)举例例6.1已知[x]原=1.0011求x解:例6.2已知[x]原=1,1100求x解:x=1

[x]原=1

1.0011=0.0011x=24

[x]原=100001,1100=1100–

–0.00111100由定义得由定义得例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.1101原码的特点:简单、直观但是用原码作加法时,会出现如下问题:能否只作加法?

找到一个与负数等价的正数来代替这个负数就可使减加加法正正加加法正负加法负正加法负负减减加

要求

数1数2

实际操作结果符号正可正可负可正可负负-123(1)补的概念时钟逆时针-363顺时针+96153.补码表示法可见3可用+9代替记作3≡+9(mod12)同理4≡+8(mod12)5≡+7(mod12)

时钟以

12为模减法加法称+9是3以12为模的补数结论一个负数加上“模”即得该负数的补数一个正数和一个负数互为补数时它们绝对值之和即为模数计数器(模16)–101110110000+010110111000010110000?可见1011可用+0101代替同理0110.1001自然去掉记作1011(mod24)≡+0101(mod23)≡+101(mod2)≡+1.0111+

0101(mod24)≡1011(mod24)(2)正数的补数即为其本身+10000+10000两个互为补数的数+0101+10101≡分别加上模结果仍互为补数∴+0101≡+0101+010124+1–10111,0101用逗号将符号位和数值部分隔开丢掉10110,1,??1011(mod24)可见?+01010101010110110101+(mod24+1)100000=(3)补码定义整数x

为真值n

为整数的位数[x]补=0,x2n

x

≥02n+1+x0

x

≥2n(mod2n+1)如x=+1010[x]补=27+1+(1011000)=[x]补=0,1010x=10110001,0101000用逗号将符号位和数值部分隔开1011000100000000小数x

为真值x=+0.1110[x]补=x1>

x

≥02+

x

0>

x

≥1(mod2)如[x]补=0.1110x=0.11000001.0100000[x]补=2

+

(0.1100000)=用小数点将符号位和数值部分隔开0.110000010.0000000(4)求补码的快捷方式=100000=1,011010101+1=1,0110又[x]原=1,1010则[x]补=24+11010=11111+11010=1111110101010当真值为负时,补码可用原码除符号位外每位取反,末位加1求得+1设x=1010时(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.7解:x=[x]补–24+1

=1,1110–100000[x]原=1,0010当真值为负时,原码可用补码除符号位外每位取反,末位加1求得[x]补

[x]原

?∴x=0010=0010求x已知[x]补=1,1110由定义得真值0,10001101,01110100.11101.00100.00000.00001.00000,10001101,10001100.11101.11100.00001.0000不能表示练习求下列真值的补码[1]补=2+x=10.00001.0000=1.0000[+0]补=[0]补由小数补码定义=1000110[x]补[x]原x=+70x=0.1110x=0.0000x=70x=0.1110x=0.0000x=1.0000=1000110[x]补=x

1>

x

≥02+

x0>

x

≥1(mod2)4.反码表示法(1)定义整数[x]反=0,x2n>x≥0(2n+1–1)+x0≥x>2n(mod2n+1

1)如x

=+1101[x]反=0,1101=1,0010x=1101[x]反=(24+11)1101=111111101用逗号将符号位和数值部分隔开x

为真值n

为整数的位数小数x

=+0.1101[x]反=

0.1101x=0.1010[x]反=(22-4)

0.1010=1.1111

0.1010=1.0101如[x]反=x1>x≥0(2–2-n)+x0≥x>1(mod22-n)用小数点将符号位和数值部分隔开x

为真值n为小数的位数(2)举例例6.10

求0的反码设x=+

0.0000[+0.0000]反=0.0000解:同理,对于整数[+0]反=0,0000例6.9已知[x]反=1,1110求x例6.8已知[x]反=0,1110求x解:由定义得x=+1110解:=1,111011111=0001由定义得x=[x]反(24+11)x=0.0000[

0.0000]反=1.1111[0]反=1,1111∴[+0]反≠[0]反

三种机器数的小结

对于正数,原码=补码=反码

对于负数,符号位为1,其数值部分原码除符号位外每位取反末位加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位(其中1位为符号位)对于整数,当其分别代表无符号数、原码、补码和反码时,对应的真值范围各为多少?例6.12解:已知[y]补求[y]补<Ⅰ>[y]补=0.y1

y2

yn…y

=0.

y1y2

yn…y=0.y1

y2

yn…[y]补=1.y1

y2

yn+2-n…<Ⅱ>[y]补=1.y1

y2

yn…[y]原

=1.y1y2

yn+2-n…

y

=(0.y1y2

yn

+2-n)…

y

=0.y1y2

yn+2-n…[y]补

=0.y1

y2

yn+2-n…设[y]补=y0.y1y2

yn…每位取反,即得[y]补[y]补连同符号位在内,末位加1每位取反,即得[y]补[y]补连同符号位在内,末位加15.移码表示法补码表示很难直接判断其真值大小如十进制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二进制补码(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,01100(2)移码和补码的比较设x=+1100100[x]移=27+1100100[x]补=0,1100100设x=–1100100[x]移=27

–1100100[x]补=1,0011100补码与移码只差一个符号位=1,1100100=0,00111001001-100000-11111-11110-00001±00000+00001

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论