![第六章:计算机的运算方法_第1页](http://file4.renrendoc.com/view12/M03/31/1E/wKhkGWY2wLyAedQrAAFdRLObVj4633.jpg)
![第六章:计算机的运算方法_第2页](http://file4.renrendoc.com/view12/M03/31/1E/wKhkGWY2wLyAedQrAAFdRLObVj46332.jpg)
![第六章:计算机的运算方法_第3页](http://file4.renrendoc.com/view12/M03/31/1E/wKhkGWY2wLyAedQrAAFdRLObVj46333.jpg)
![第六章:计算机的运算方法_第4页](http://file4.renrendoc.com/view12/M03/31/1E/wKhkGWY2wLyAedQrAAFdRLObVj46334.jpg)
![第六章:计算机的运算方法_第5页](http://file4.renrendoc.com/view12/M03/31/1E/wKhkGWY2wLyAedQrAAFdRLObVj46335.jpg)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第六章计算机的运算方法
6.1无符号数和有符号数4
6.2数的定点表示和浮点表示■
6.3定点运算
6.4浮点四则运算k
6.5算术逻辑单元
6.1无符号数和有符号数
无符号数
机器字长:寄存器的位余
无符号数:寄存器的每位都用于存放数值
机器字长反映无符号数的表示范围
8位0〜255
16位0-65535
有符号数
1.机器数与真值
真值机器数
带符号的数符号数字化的数
+0.1011
小数点的位置
-0.1011
小数点的位置
+1100
小数点的位置
-1100
小数点的位置
2.原码表示法
(1)定义
整数
ro,x2n>x>0
国原=
I2。0>x>T
x为真值〃为整数的位数
如x=+1110[x]原=0/110
用逗号将符号位
丁和数值部分隔开
II
x=-1110[汨原=24+1110=1,1110
带符号的绝对值表示匚一
小数
rx1>x>0
㈤原=Iii
I1-x0>x>1
X为真值I
如x=+0.1101[x]原=0.1101用小数点将符号
‘t-------------位和数值部分隔开
I
x=-0.1101[x]jM=1-(-0.1101)=1.1101
x=+0.1000000凶原=0.1000000用小数点将付节
t-------------位和数值部分隔开
I
X=-0.1000000区原=1-(-0.1000000)=1.1000000
(2)举例
例6.1已知[x]原=1.0011求x-0.0011
解:由定义得一
x=1-国原=1-1.0011=-0.0011
II
例6.2已知[x]原=1,1100求x-1100
解:由定义得--------------
x=24-凶原=10000-1,1100=-1100
例6.3已知R]原=0.1101求x
解:根据定义*/[x]>=0.1101
•e.x=+0.1101
例6.4求x=0的原码
解:设x=+0.0000[+0.0000]原=0.0000
x=-0.0000[-0.0000]原=1.0000
同理,对于整数.[+0]原=0,0000
[-0]原=1,0000
•••[+0]原#[叫原
原码的特点:简单、直观
但是用原码作加法时,、会出现如下问题:
要求数1数2实际操作结果符号
加法正正加正
加法正负减可正可负
加法负正减可力可负
加法负负力口负』
能否只作加法?
找到一个与负数等价的正数来代替这个负数
就可使减——>加
3.补码表示法
(1)补的概念
•时钟逆时针顺时针
-3±9
T15
可见-3可用+9代替减法一>加法产
称+9是-3以12为模的补数/3
t己彳乍一3三+9(mod12)时钟以
同理-4=+8(mod12)12为模
一5三+7(mod12)
结论
>一个负数加上“横”、即得该负数的补
蓼一个正数和一个负数互为未遂时,它们绝对值之和
即为模数
•计数器(模16)1011—0000?
10111011
—1011.0101
0000段00
可见-1011可用+0101代替『
,,自然去掉\
t已作-1011=+0101(mod24)
同理-011=+101(mod23)
-0.1001=+1.0111(mod2)
(2)正数的补数即为其本身
两个互为补数的数1-1011=+0101J(mod24)
分别加上模+10000+10000
结果仍互为补数+0101=+
+0101=+0101(mo丢掉
可见+0101-^+0101
I-L-ion
?血0101—10101
?|I],0101--1011
24+1—1011=100000
-1011
1,0101
(3)补码定义
整数
0,x2W>x>0
2.1+x0>x>(mod2w+1)
X为真值〃为整数的位数
如x=+1010x=-1011000
[刈补=04010[刈补=27+1+(-1011000)
=100000000
-1011000
用逗号将符号位
和数值部分隔开「1,0101000
小数
rx1>x>0
闵补=
I2+x0>x>4(mod2)
'为真值
如x=+0.1110x=-0.1100000
[刈补=
0.1110[x]#=2+(-0.1100000)
=10.0000000
-0.1100000
用小数点将符号位1.0100000
________I
和数值部分隔开一
(4)求补码的快捷方式
设*=-1010时
则[划补=24+1-1010=11111+1-1010
=100000=mil+1
-1010-1010_
又[x]原
当真值为负时,补码可用原码除符号位外
每位取反,末位加1求得
⑸举例
例6.5已知[刈补=0.0001
求x
解:由定义得X=+0.00叫'I
例6.6已知国补=1.0001国补一国原
求x国原=1.1111
解:由定义得,Ax=-0.1111
X=[x]#-2
=1.0001-10.0000
=-0.1111
例6.7已知国补=1,1110
求x
o
解:由定义得补工国原I
4+1
X=[X]#-2[XQ=1,0010
=1,1110-100000,X=-0010
=-0010
当真值为负时,原码可用补码除符号位外
每位取反,末位加1求得
练习求下列真值的补码
真值
x=+7010001100,10001100,1000110
x=-70=-10001101,01110101,1000110
x=0.11100.11100.1110
x=-0.11101.00101.1110
x—0・0000][+0]补=[-0]补0.00000.0000
x=卜0.00000.00001.0000
不肯廉示
x=-1.00001.0000
x1>x>0
由小数补码定义国补=
2+x0>x>4(mod2)
[-1]补=2+X=10.0000-1.0000=1.0000
4.反码表示法
⑴定义
整数
f0,x2n>x>0
反一
【(2"1-l)+x0>x>2〃(mod2w+1
X为真值〃为整数的位数
如x=+1101x=-1101
[汨反=0/101[刈反=(24+1-1)-1101
=11111-1101
用逗号将符号位=1,0010
和数值部分隔开______t
小数
rxi>x>o
[刈反=1
L(2-2-n)+x0>X>1(mod2”
X为真值〃为小数的位数P
X=+0.1101x=-0.1010
[汨反=0.1101[划反=(2-24)-0.1010
=1.1111-0.1010
用小数点将符号位=1.0101
和数值部分隔开一___t
(2)举例
例6.8已知[刈反=0,1110求x
解:由定义得x=+1110
例6.9已知[刈反=1,1110求x
4+1
解:由定义得x=国反-(2
=191110-11111
=-0001
例6.10求0的反码
解:设x=+0.0000[+0.0000]反=0.0000
x=-0.0000[-0.0000]反=1.1111
同理,对于整数[+0]反=0,0000[-0]反=1」111
・••[+0]反r[划反
三种机器数的小结
A最高位为符号位,书写上用“丁(整数)
或(小数)将数值部分和符号位隔开
>对于正数,原码=补码=反码
A对于负数,符号位为1,其数值部分
原码除符号位外每位取反末位加1一补码
原码除符号位外每位取反一反码
例6.11设机器数字长为8位(其中一位为符号位)
对于整数,当其分别代表无符号数、原码、补码和
反码时,对应的真值范围各为多少?
无符号数原码对应补码对应反码对应
二进制代码
对应的真值的真值的真值的真值
00000000±0~+0~
000000011+1+1
000000102+2+2
•
1…•
01111111112+127+127
10000000127-128-127
28-0
10000001-1-127-126
29・
・
.:
2+1
111111012253-125-3
111111102254-126-2-1
11111111255-127-1-0
例6J2已知仅]补求小补
解:设M补
vI>[m补=0・一弘…弘
m补连同符号位在内,每位取反,末位加1
即得川补一
[-何补=1防灭…工+2"
<n>[口]补=1・y1^2・•・丁〃
仅]补连同符号位在内,每位取反,末位加1
即得[寸]补
[一.补=0•卜河・••五+2”
5.移码表不法
补码表示很难直接判断其真值大小
如十进制二进制补码
x=+21+101010,10101错
大
x=-21-101011,01011
x=+31+111110,11111错
x=-31-111111,00001大
x+25
+10101+100000=110101大正确
-10101+100000=001011
+11111+100000=111111大正确
-11111+100000=000001
(1)移码定义
[刈移=2〃+x(2n>x>2")
X为真值,〃为整数的应数、
移码在数轴上的表示
移码
如
区移=25+10100=1,10100
x=-101001--------用逗号将符号位
和数值位隔开
国移=2‘—10100=0,01100
(2)移码和补码的比较
设x=+1100100
国移=27+1100100=14100100
区补=0,1100100
设x=-1100100
区移=27—1100100=0,0011100
[刈补=1,0011100
补码与移码只差一个符号位
⑶真值、补码和移码的对照表
国补M移对应的
真值x(〃=5)移十进制整数
-1000001000000000000
-111111000010000011
-11110100010000010\2
•••
■•■•*
-00001111111011111
±00000000000100000r*
+0000100000110000133
+0001000001010001034
•••
■•*■•6:
+11110011110111110
+1111101111111111163
(4)移码的特点
A当x=0时[+0]移=2§+0=1,00000
[一0]移=25—0=1,00000
,[+0]移=[—0]移
»当〃=5时最小的真值为-25=—100000
[—100000]移=25-100000=000000
可见,最小真值的移码为全0
用移码表示浮点数的阶码1
能方便地判断浮点数的阶码大小
6.2数的定点表示和浮点表示
小数点按约定方式标出
、定点表不
SfS1S2…或SfSS2…
数数
数值部分数值部分
符符
小数点位置小数点'位置
定点机小数定点机整数定点机
原码-(1-2”)〜+(1-2~n)—(2〃—1)〜+(2〃—1)
补码-1^+(1-2~n)_2〃~+(2f)
反码-(1-2-n)〜+(1-2~n)_(2〃一1)〜+(2n-l)
浮点表示
N=Sxri数的一般形式
S尾数j阶码〃基数(即)
计算机中r取2、4、8、茄等、
当r=2N=11.0101二二进制表不
/=0.110101X2回了规格化数
=1.10101X21
=1101.01X210
0.00110101X2100
计算机中s小数、可正可负1
j整数、可正可负)
1.浮点数的表示形式
j阶码S尾数
JfjJiSfS1S2
阶数4
阶码的尾数的数值部分
符数值部分符
小数点位置
Sf代表浮点数的符号
其位数反映浮点数的精度
其位数反映浮点数的表示范围
jf和m共同表示小数点的实际位置
2.浮点数的表示范围
上溢阶码,最大阶叫
下溢阶码v最小阶码按机器零处理
上溢上溢
负数区下溢正数区
0
最小负数最大正数
_2(2WM)X(1-2-«)2(2J)X(1—2一〃)
最小正数
-215X(l-2-10)215X(1-2'10)
2-(2J)X2f
2T5X2-10
最大负数设股=4
-2-(2J)x2fn=10
-2-15XV10
练习
设机器数字长为243献表示±3万的十进制
数,试问在保证数的最大精度M前起下,除阶符、数
符各取1位外,阶码、尾数各取几
解:•••214=16384215=32768
/.15位二进制数可反映±3万之间的十进制数]
20XO.xxx•••xxx
I'~访z.
m=4,5,6,…
满足最大精度可取帆=4,n=lS
3.浮点数的规格化形式
r=2尾数最高位为1、
r=4尾数最高2位不全为0、基数不同,浮点数的
r=8尾数最高3位不全为0产化形式不同
4.浮点数的规格化I
r=2左规尾数左移1位,阶码
右规尾数右移1位,阶码加
r=4左规尾数左移2位,阶码减1
右规尾数右移2位,阶码加1
左规尾数左移3位,阶码减1\
r=8
右规尾数右移3位,阶码加1中
基数r越大,可表示的浮点数的范围越大■
基数r越大,浮点数的精度降低
例如:设股=4,n=10,r=2
尾数规格化后面浮点蓼表示范围
1510
最大正数2+U11X0.1\_11_1_111_1_1_1J=2X(l-2-)
10
最小正数21111X0.1000000000=2-15*2-1=2*
9得
最大负数2-1111X(-0.1000000000)=-2-15X=-2-16
vyz\
9个0
最小负数2+uiiX(-041111111111=-215X(l-2-10)
Y
10个1
三、举例
为;13将+嗡写心进定点数、浮点数及在定点
机和浮点机中的机器数形式。其中数值部分均取10位
数符取1位,浮点数阶码取5位"1位阶符)。
解:设*=+嗡■
二进制形式x=0.0010011
定点表示X=0.0010011000
浮点规格化形式X=0.1001100000X210
定点机中四原=四补=[刈反=0.0010011000
浮点机中田原=1,0010;0.1001100000
[刈补=1,1110;0.1001100000
[刈反=1,1101;0.1001100000
例6.14将-58表示成二进制定点数和浮点数,
并写出它在定点机和浮点机中的三种机器数及阶码
为移码、尾数为补码的形式(其他要求同上例)。
解:设x=-58
二进制形式x=-111010
定点表示x=-0000111010
浮点规格化形式x=-(0.1110100000)x2110
定点机中浮点机中
[汨原=1,0000111010[x]原=0,0110;1.1110100000
[x]补=1,1111000110[x]补=0,0110;1.0001100000
[x]反=1,1111000101区反=0,0110;1.0001011111
[%1阶移、尾补=1,0110;1.0001100000
例6.15写出对应下图所示的浮点数的补码
形式。设〃=10,m=4,阶符、数符各取1位。
上溢上溢
负数区下溢正数区
最小负数0I最大正数
最小正数
—2(2J)X(1—2一")2(2"T)X(1—2-〃)
2-(2"J)X2~n
最大负数
-2-(2"J)x2T
解:真值补码
最大正数215X(l-2-10)04111;o.iiiiiiiiii
最小正数2"15X2"101,0001;0.0000000001
最大负数—2一15X2-101,0001;1.1111111111
最小负数-215X(l-2-10)0,1111;1.0000000001
机器零
>当浮点数尾数为0时:还论其阶码为何值
按机器零处理
>当浮点数阶码等于或小于它说表示的最小
数时,不论尾数为何值,按机寤零处理
如股=4n=10
当阶码和尾数都用补码表示时,机器零为
x,xxxx;0.00・・・0
(阶码=T6)1,0000;x.xx…x
当阶码用移码,尾数用补码表示时,机器零为
0,0000;0.00・・・0
有利于机器中“判0”电路的实现
四、IEEE754标准
s阶码(含阶符)尾数
数符小数点位置
尾数为规格化表示
非“0”的有效位最高位为“1"(隐含)
符号位s阶码尾数总位数
短实数182332
长实数1115264
临时实数1156480
6.3定点运算
1移位运算
1.移位的意义
15•m=1500・cm\
小数点右移2位
机器用语15相对于小数点左移2位
(小数点不动)
左移绝对值扩大W
右移绝对值缩小■
在计算机中,移位与加减配合,能够实现乘除运算
2.算术移位规则
符号位不变
设机器数字长为8位(含1位符号位),写出
/=+26时,三种机器数左、右第一位和两位后的表
示形式及对应的真值,并分析结果的正确性。
解:A=+26=+11010\
则⑷原=[同补=网反=0,0011010
机器数对应的看值
移位操作
[4]原=[4]补=[4]反
移位前0,0011010+26
左移一位0,0110100+52
左移两位0,1101000+104
右移一位0,0001101+13
右移两位0,0000110+6
设机器数字长为8位;会1位符号位),写出
4=-26时,三种机器数左、石移一位和两位后的表
示形式及对应的真值,并分析结询正确性。|
解:/=—26=—11010k
原码移位操作机器数对应的真值
移位前1,0011010-26
左移一位1,0110100-52
左移两位1,1101000-104
右移一位1,0001101-13
右移两位1,0000110-6
补码移位操作机器数对应的真值
移位前1,1100110-26
左移一位1,1001100-52
左移两位1,0011000X-104
右移一位1,1110011-43
右移两位1,1111001-7
反码移位操作机器数对应的真值
移位前1,1100101-26
左移一位14001011-52
左移两位1,0010111-104
右移一位1,1110010-13
右移两位1,1111001-6
3.算术移位的硬件实现
中-口«中曰5曰中曰
0001
------>一
0
(a)真值为正(b)负数的原码(c)负数的补码(d)负数的反码
丢1出错出错正确正确
丢1影响精度影响精度影响精度正确
4.算术移位和逻辑移位的区别
算术移位有符号数的移位
逻辑移位无符号数的移位
逻辑左移低位添o,高位移丢r^-ho
逻辑右移高位添0,低位移丢
例如0101001110110010
逻辑左移10100110逻辑右移01011001
算术左移00100110算术右移11011001(补码)
高位1移丢
01010011司110100117
二、加减法运算
1.补码加减运算公式
(1)加法X.
整数[对补+回补=m+用补(mod2y-,
小数⑷补+回补=因+5]补(mod2)
(2)减法
A-B=A+(-B)
整数[A-用补=[A+(-B)]补=[Z]补+[-用补(mod2n+1)
小数3叫补=[/+(-')]补=3]补+[一耳补(mod2)
连同符号位一起相加,符号位产生的进位自然丢掉
2.举例
例6.18设N=0.1011,5=-0.0101
求3+£]补验证
解:⑷补=0.1011
0.1011
+出]补=1.1011一0.0101
⑷补+田]补0.0110
mlp.0110=[Z+5]补
:.A+0.0110
例6.19设/=—9,B=-5
求[A+B]补验证
解:⑷补,=1,0111
-1001
+出]补,=1,1011+-0101
[同补+田]补-1110
=)11,0010=3+4]补
:.A+=-1110
例620设机器数字长为8位(含1位符号位)
且4=15,5=24,用补码求N—£
解:A=15=0001111
£=24=0011000
[同补=0,0001111田]补=0,0011000
+[——]补=1,1101000\、
网补+[-孙卜=1,1110111=[A-孙卜
:.A-B=-1001=-9
练习1设工=告y=毛,用补码求x+y
x+y=-0.1100=一一错
练习2设机器数字长为8位(含1位符号位)\
且/=—97,B=+41,用补码求力—£
^-5=+1110110=+118错
3.溢出判断
(1)一位符号位判溢出
参加操作的两个数(减法时即邓减数和“求补”
以后的减数)符号相同,其结果法符号与原操作
数的符号不同,即为溢出
硬件实现
最高有效位的进位㊉符号位的进位=1溢出
如"0=1]
卜有溢出
0㊉1=1.
0㊉0=0]
F无溢出
1㊉1=0.
(2)两位符号位判溢出
x1>x>0
[划补,
4+x0>x>-1(mod4)
团补,+m补,=[%+y]补,(mod4)
比一丁]补,=[刈补,+[-川补,(mod4)
结果的双符号位相同未溢出00,xxxxx
11,xxxxx
结果的双符号位不同溢出10夕xxxxx
01fxxxxx
最高符号位代表其真正的符号
4.补码加减法的硬件配置
A、X均〃+1位
用减法标记Gs控制求补逻辑
三、乘法运算
1.分析笔算乘法
71=-0.1101B=0.1011
^XB=-0.10001111乘积的符号心算求得
0.1101
X0.1011符号位单独处理
1101乘数的某一位决定是否加被乘数
1101
?
00004个位积一起相加
1101乘积的位数扩大一倍
0.10001111
2.笔算乘法改进
0.1011
=0.1A+0.00T4+0.00+0.000L4
=0.1A+0.00/+0.001(/+0.L4)
=0.L4+0.01[0-^+0.1(A+0.L4)]
右移一位一=0*1{/+°」[°・/+0・1(力+0・1力)]}
、2”|{4+2“[0•A+2\A+2/(4+0))]}
第一步被乘数z+o
第二步右移一位,得新的部分积②
第三步部分积+被乘数
第八步右移一位,得结果
3.改进后的笔算乘法过程(竖式)
部分积乘数说明
0.0000Ton州态,部分积=0
+0,1101乘数为1,加被乘数
0.1101
0.01101101一1,形成新的部分积
+0.1101乘数为1,加被乘数、
1.00111
0.10011110一1,形成新的部分积
+0.0000乘数为0,加0
0.100111
0.0100mi一1,形成新的部分积
+0.1101乘数为1,加被乘数
1.0001in
0.1000mib得结果
小结
>乘法运算可用加和移船吸
〃=4,加4次,移4次
>由乘数的末位决定被乘数是否与原部分积相加,
然后一1位形成新的部分积,同时乘数一1位
(末位移丢),空出高位存放部分积的低位。
>被乘数只与部分积的高位相加
硬件3个寄存器,具有移位功能
1个全加器
4.原码乘法
⑴原码一位乘运算规则
以小数为例
设[x]原—*()•%遇2X"
m原yn
比•“原=*0㊉%)・(0・Xxx2…居)(0…")
=(网邮))・x*y*
式中x*=0.xrx2•••xw为x的绝对值
y*=0.JM…典,为y的绝对值
乘积的符号位单独处理与㊉外
数值部分为绝对值相乘X*
⑵原码一位乘递推公式
=X*(0JLF2・・•")
=廿。2】+%2-2+...+稣2-,
AA
=2(y1x*+2(y2x*+…2”(p/*+0)•••))
1
z0=0
Zi=2/e/*+zo)
Z2=2-I(F»IX*+ZI)
z”=Aek+zQ
例6.21已知*=snioj;=0.1101求比・切原
、—
解:立15
口数说明
0.00001101部分积初态Zo=O
+0.1110+x*
.1110
逻辑右移
.01110110一1,得©
+0,0000+0
0.01110
逻辑右移
>0.00111011-1,得向
+0.1110+x*
---------.1.000110
逻辑右移
.10001101一1,得Z3
+0.1110
.0110110
逻辑右移
.10110110一1,得Z4
例621结果
①乘积的符号位/㊉外飞㊉0=1
②数值部分按绝对值相乘
=0.10110110
贝I[比•川原=1.10110110
特点绝对值运算
用移位的次数判断乘法是否结束
逻辑移位
⑶原码一位乘的硬件配置
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 拆墙施工协议
- 中介手房买卖合同范文
- 家具安装服务承包合同
- 经营承包合同协议书
- 律师分享‖不动产抵押合同模板
- 高速公路信用承诺书
- 户外广告发布合同范本
- 合作开发合同范本
- 租赁合同样本公共服务设施
- 房屋加固修缮协议书
- DB3311-T 189─2021皇菊栽培技术规程
- 公路水路建设与运输市场信用信息服务系统项目文件
- (新版)国家统计执法证资格考试备考题库(含答案)
- 顺德格兰仕销售有限公司管理办法
- 2021年广东省普通高中学业水平选择考适应性测试生物学试卷(八省联考)
- 2023-计算机考研408真题及答案
- 10kV及以下架空配电线路设计技术规程
- 《快乐的童年》教学-完整版PPT
- 幼儿园绘本故事:《漏》
- 国有林场森林防火道路设计方案
- 论企业核心竞争力的独特性
评论
0/150
提交评论