计算机比较运算符原理,计算机组成原理 - 6.计算机的运算方法

思维导图:

2211bd517c91f859ff9a611882463f5e.png

课程进度:

0757813fd0266bb9efcb3f40a97f7714.png

一、无符号数和有符号数

1.无符号数

寄存器位数反映无符号数的表示范围:

8位——0255

16位——065535

2.有符号数

机器数与真值

03efccd6c2c163d58e7a6c7b4138175b.png

原码表示法

整数

668a7f0e16c5be95072b3be7dbb2b6b4.png

小数

42ce258d8625cccc235c64d230bd99c3.png

原码简单直观

4e749a3e90103f960d3247f649e2a456.png

补码表示法

(1) 补的概念

补码的提出:解决原码的加减符号不同意问题(用加法代替减法)

时钟:6点 -3 可用 + 9 代替-都变成3点,称 + 9 是 3 以 12 为模的补数(mod 12)

结论:

一个负数加上 “模” 即得该负数的补数

一个正数和一个负数互为补数时它们绝对值之和即为模数

(2) 正数的补数即为其本身

23ae3fd7f1f8208648b55c3f4e99dfdb.png

(3) 补码定义

467028ebcfcd5e63a52dd97cb017a889.png

(4) 求补码的快捷方式

当真值为负时,补码 可用 原码除符号位外每位取反,末位加 1 求得

反码表示法

除符号位每位取反

607681b2b3eaa5d4ed2c7f7c81fae21c.png

比较

90bebb79ecb32a76d8b676d62cc5aa7c.png

移码表示法

定义

9023e3f13b835e423eb8df0b0905e05d.png

移码和补码的比较:补码与移码只差一个符号位

d134942dda9c5958b794bce63933665e.png

真值、补码和移码的对照

00f4df39737e835982aad296f1162e12.png

移码的特点

最小真值的移码为全 0

用移码表示浮点数的阶码能方便地判断浮点数的阶码大小

二、数的定点表示和浮点表示

1.定点表示

小数点固定在某一位置为定点数

在定点机中,小数位置固定,当处理数不是纯小数或纯整数时,必须乘上一个比例因子,否则会“溢出”

2.浮点表示

起因

编程困难,程序员要调节小数点的位置

数的表示范围小,为了能表示两个大小相差很大的数据,需要很长的机器字长;

数据存储单元的利用率往往很低

浮点

ca6bc9a0685ef5d1d0f82868d501e8f3.png

S:小数,可正可负

j:整数,可正可负

浮点形式

af9f0833b1656a110e0c30ff06ec3fa5.png

范围

3e866ad39cffb7759040934247189ffb.png

浮点数规格化

1.基数不同,浮点数规格化形式不同:

r = 2 尾数最高位为 1

r = 4 尾数最高 2 位不全为 0

r = 8 尾数最高 3 位不全为 0

2.基数 r 越大,可表示的浮点数的范围越大,浮点数的精度降低:

r = 2 左规 尾数左移 1 位,阶码减 1

右规 尾数右移 1 位,阶码加 1

r = 4 左规 尾数左移 2 位,阶码减 1

右规 尾数右移 2 位,阶码加 1

r = 8 左规 尾数左移 3 位,阶码减 1

右规 尾数右移 3 位,阶码加 1

机器零

当浮点数尾数为 0 时,不论其阶码为何值按机器零处理

当浮点数阶码等于或小于它所表示的最小数时,不论尾数为何值,按机器零处理

3.定点数和浮点数比较

05977c01821bc39fbe8cfe713fa84a1d.png

4.举例

b2a5f79753bc52f20a1b6b2e37ee3e33.png

5.IEEE 754标准

标准

62a8cfd50c1a1eae0aefd355ac04b029.png

举例

8d8a1d6afb93b55bf9e31cdbee3c6ca4.png

三、定点运算

1.移位运算

移位的意义

15.m = 1500. cm

小数点右移 2 位

机器用语 15 相对于小数点 左移 2 位

算术移位

规则

d0e63dcf8e568665e418d71edb4c1d72.png

举例

a66d8f2b907d65cc326b031ba9a35909.png

算术移位的硬件实现

83a8b6862f86f312fcb42b729808d080.png

算术移位和逻辑移位的区别

算术移位:有符号数的移位逻辑左移:低位添 0,高位移丢

逻辑右移:高位添 0,低位移丢

逻辑移位:无符号数的移位

2.加法与减法运算

补码加减法运算的公式

加法

0549940dd94fe11db987162f510e7d2e.png

减法

a725e220016db45821182389da4c9d84.png

举例

0bc268a5a8c4f08d08d689c34e7a1fb6.png

溢出的判断

一位符号位判溢出

8575eca9e83ba872dd71ff761a682977.png

参加操作的两个数(减法时即为被减数和“求补”以后的减数)符号相同,其结果的符号与原操作数的符号不同,即为溢出

两位符号位判溢出

7baaff31ff7f334a0d442587459c120e.png

结果的双符号位 相同 未溢出

结果的双符号位 不同 溢出

最高符号位代表其真正的符号

补码加减法的硬件配置

377fb8208264198b7e2a39c9c9658e5e.png

3.乘法运算

分析笔算乘法

4c468eb6fcc6afae73874ee02b3fe13a.png

笔算乘法改进

41cadf6bd300ab128d0f35ebc8cf0b66.png

改进后的笔算乘法过程(竖式)

783882fdc9f1bad874da5d16dccad823.png

小结

乘法运算可用加和移位实现n = 4, 加 4 次,移 4 次

由乘数的末位决定被乘数是否与原部分积相加,然后 1 位形成新的部分积,同时 乘数 1 位(末位移丢),空出高位存放部分积的低位。

被乘数只与部分积的高位相加

硬件:3 个寄存器,其中2个具有移位功能;1 个全加器

原码一位乘

举例

7e48603f984e962ad05f31bb75c24b65.png

硬件

0b5edbae52094d9ce5cd6fd11f1b234a.png

补码一位乘

a738591f4457fcf7a88e7dc71e98cb98.png

Booth算法

递推公式

82fefa1f3b5b8c938c407c360dc43cad.png

举例

b2989eb42d4b377fb1dc44fd6be7cb2e.png

硬件

7c1437a292ade2145631f6ce2061cf63.png

4.除法运算

分析笔算除法

bf8540ffc531c13d642727bea4048d0e.png

笔算除法和机器除法的比较

6ea07081b913c0ace88518cde49b31b8.png

原码除法

(1) 恢复余数法

d65c2d42a8f1f645c418aba86a37f177.png

(2) 不恢复余数法(加减交替法)

424ad350441a5afc22c4dab6f126a5c8.png

(3) 原码加减交替除法硬件配置

ceb3e5e4b3fce552b3babd8e5e45b41a.png

四、浮点四则运算

1. 对阶(小介看大介)

aab4f9697e15234dcf7f8c806e8fce71.png

2.尾数求和

4be9a3758b8354bd053d8374770a8311.png

3. 规格化

左规

e79f57844d846ad12f6ec0db07659e36.png

右规

a656cf4521172513f799a8b4843dafe9.png

4. 舍入

在 对阶 和 右规 过程中,可能出现尾数末位丢失引起误差,需考虑舍入

0 舍 1 入法

恒置 “1” 法

5. 溢出判断

5b75d1a35353baf51f22e0c30e90a1ad.png

五、算术逻辑单元

1.ALU电路

42c8a5373df5443c509a262ec9ad0c3a.png

2.快速进位链1.串行进位链

2.并行进位链(先行进位,跳跃进位)

注:本篇除思维导图,其它图片均来自PPT课件和唐朔飞的《计算机组成原理》

👇欢迎评论转发٩(๑•̀ω•́๑)۶😜

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值