计算机组成原理6 计算机得运算方法

目录

 

1 无符号数和有符号数

 

2 数的定点表示和浮点表示

 

3 定点运算

 

 

 

一、 无符号数

无符号数就是指正整数,机器字长的全部位数均用来表示数值的大小,相当于数的绝对值。

 

一、 有符号数

 

1、机器数与真值

带符号数是指在计算机中将数的符号数码化。在计算机中,一般规定二进制的最高位为符号位,最高位为“0”表示该数为正,为“1”表示该数为负。这种在机器中使用符号位也被数码化的数称为机器数,把带‘+’或‘-’符号的数称为真值。

 

根据符号位和数值位的编码方法不同,机器数分为原码,补码和反码。

 

2、原码表示法

 

机器数的最高位为符号位,0表示正数,1表示负数,数值跟随其后,并以绝对值形式给出。这是与真值最接近的一种表示形式。为了区别整数和小数,约定整数的符号位与数值位之间用逗号隔开;小数的符号位与数值位之间用小数点隔开。

3、补码表示法

(1)补数

对模12来说,-5可以用其补数+7表示。

一个负数可用它的正补数来代替,而这个正补数可以用模加上负数本身求得。

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

正数的补数即该正数本身。

(2)补码

x=+1010,则x的补码位0,1010

x=-0.1101,则x的补码为1.0011。

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

 

4、反码表示法

反码通常用来作为由原码求补码或者由补码求原码的中间过渡。

 

5、三种机器数总结

(1)三种机器数的最高位均为符号位。符号数和数值部分之间可用“.”(小数)或“,”(整数)隔开。

(2)当真值为正时,原码、补码和反码的表示形式均相同,即符号位用“0”表示,数值部分与真值相同。

(3)当真值为负时,原码、补码和反码的表示形式不同,但其符号位都用“1”表示,而数值部分有这样的关系,即补码是原码的“求反加1”,反码是原码的“每位求反”。

6、移码

同一个真值的移码和补码仅差一个符号位,若将补码的符号位由“0”改为“1”,或从“1”改为“0”,即可得到该真值的移码。

 

2 数的定点表示和浮点表示

 

一、定点表示

小数点固定在某一位置的数为定点数,当小数点位于数符和第一数值位之间时,机器内的数为纯小数;当小数点位于数值位之后时,机器内的数为纯整数。采用定点数的机器称为定点机。

二、浮点表示

1、浮点数是指小数点位置可浮动的数据,通常以下式表示:

N = S × r的j次方

式中,S为尾数,j为阶码,r是基数。在计算机中,基数可取2、4、8或16等。

2、浮点数由阶码j和尾数S表示,阶码是整数,阶符和阶码的位数m合起来反应浮点数的表示范围及小数点的实际位置;尾数是小数,其位数n反映了浮点数的精度;

3、浮点数的规格化

将尾数最高位为1的浮点数称为规格化数,浮点数规格化后,其精度最高。

当基数为2时,尾数最高位为1的数为规格化数。规格化时,尾数左移一位,阶码减一;尾数右移一位,阶码加一。

 

3 定点运算

 

一、移位运算

1、算数移位规则

正数:原码、补码、反码 填0;

负数:原码 填0; 补码 左移填0,右移填1; 反码 填1;

2、

对于正数,三种机器数移位后符号均不变,左移时最高数位丢1,结果出错;右移时最低位丢1,影响精度。

对于负数,三种机器数算数移位后符号位均不变。负数原码左移时,高位丢1,结果出错;右移时,低位丢1,影响精度。负数的补码左移时,高位丢0,结果出错

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

算术移位:有符号数的移位。

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

逻辑左移:低位填0,高位移丢。

逻辑右移:高位填0,低位移丢。

 

二、加减法运算

1、补码加减运算公式

 

2、溢出判断

当运算结果超出机器数所能表示的范围时,称为溢出.显然,两个异号数相加或两个同号数相减,其结果是不会溢出的.仅当两个同号数相加或者两个异号数相减时,才有可能发溢出的情况,一旦溢出,运算结果就不正确了,因此必须将溢出的情况检查出来.判别方法有三种:

 

1〉当符号相同的两数相加时,如果结果的符号与加数(或被加数)不相同,则为溢出.

 

2〉当任意符号两数相加时,如果C=Cf,运算结果正确,其中C为数值最高位的进位,Cf为符号位的进位.如果C≠Cf ,则为溢出,所以溢出条件=C⊕Cf .

 

3〉采用双符号fs2fs1.正数的双符号位为00,负数的双符号位为11.符号位参与运算,当结果的两个符号位甲和乙不相同时,为溢出.所以溢出条件= fs2⊕fs1 ,或者溢出条件= fs2fs1 + fs2fs1

 

三、乘法运算

 

四、除法运算

 

五、算数逻辑单元

1、ALU电路 (组合逻辑电路)

针对每一种算术运算,都必须有一个相对应的基本硬件配置,其核心部件是加法器和寄存器。当需要完成逻辑运算时,势必需要配置相应的逻辑电路,而ALU电路是既能完成算术运算又能完成逻辑运算的部件。

 

ALU部件是运算器中的主要组成部分,又称多功能函数发生器,主要用于完成各种算术运算和逻辑运算.

 

ALU的算术运算部件包含加法器,减法器,乘法器,除法器,增量器(+1),减量器(-1),BCD码运算器等组件.

 

ALU的主要工作是根据CPU指令要求执行各种指定运算,如加法,减法,乘法,除法,比较,逻辑移位等操作.

 

2、快速进位链

(1)并行加法器

并行加法器由若干个全加器组成,为了提高运算速度,减少延迟时间,可以采用并行进位法,也叫提前进位或先行进位.

 

(2)串行进位链:是指并行加法器中的进位信号采用串行传递。

 

(3)并行进位链:是指并行加法器中的进位信号是同时产生的,又称先行进位、跳跃进位等。

1)单重分组跳跃进位:就是将n位全加器分成若干小组,小组内的进位同时产生,小组与小组之间采用串行进位,这种进位又有组内并行、组间串行之称。

2)双重分组跳跃进位:就是将n位全加器分成若干大组,每个大组又分成若干小组,而每个大组内所包含的各个小组的最高位进位是同时产生的,大组与大组间采用串行进位。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值