【计算机组成原理】定点数运算

定点数运算

定点数移位运算

移位操作分为 逻辑移位算数移位 两种方式

在这里插入图片描述

在这里插入图片描述

由原码得到补码的过程发现,当对其**由低位向高位找到第一个“1”**时,在此“1”左边的各位均与对应的原码相反在此“1”右边的各位均与对应的原码相同

[x]原 = 1011 1100
[x]补 = 1100 0100

【例1】设机器数字长为8位(含1位符号位),写出A=+26时,三种机器数左、右移一位和两位后的表示形式及对应的真值

在这里插入图片描述

【例2】设机器数字长为8位(含1位符号位),写出A=-26时,三种机器数左、右移一位和两位后的表示形式及对应的真值

在这里插入图片描述

在这里插入图片描述

【例3】整数x的机器数为1101 1000,分别对x进行逻辑右移1位和算术右移1位操作,得到的机器数各是:0110 1100、1110 1100

定点数加减法运算

原码定点数加减法运算

在这里插入图片描述

【例】

在这里插入图片描述

补码定点数加减法运算

在这里插入图片描述

【例】

在这里插入图片描述

溢出判断

去看 补码的加减运算和溢出判断 讲的很清楚!

溢出分为上溢下溢只有正数加正数才可能发生上溢负数加负数才会出现下溢,溢出的判断方法可以用下面几种

  • 符号位判断

    设进行加减操作的操作数为 A 和 B,他们的符号位分别为 S A S_A SA S B S_B SB ,设两数运算结果为 F ,符号位为 S F S_F SF
    那么 溢出逻辑 = ( S A ⊕ S F ) ( S B ⊕ S F ) = S A ‾   S B ‾   S F + S A   S B   S F ‾ 溢出逻辑=(S_A⊕S_F)(S_B⊕S_F)=\overline{S_A}~\overline{S_B}~S_F+S_A~S_B~\overline{S_F} 溢出逻辑=(SASF)(SBSF)=SA SB SF+SA SB SF

  • 最高位和符号位的进位判断

    设符号位的进位为 C f C_f Cf ,尾数最高位的进位为 C C C

    那么 溢出逻辑 = C f ⊕ C 溢出逻辑=C_f⊕C 溢出逻辑=CfC

    【例】
    在这里插入图片描述

  • 双符号位判断

    双符号位:用00表示正,11表示负,如果计算结果的符号位是01或10,则表示发生了溢出,其中01表示发生了正溢10表示发生了负溢

    【例】
    在这里插入图片描述

定点数乘法运算

乘法运算由累加右移操作实现

原码一位乘法

可以看 原码乘法运算 一位乘 计组 讲的挺清楚的

用原码实现乘法运算时,符号位与数值位分开计算:

  1. 确定乘积的符号:由两个乘数的符号异或得到
  2. 计算乘积的数值位:乘积的数值部分为两个乘数的数值部分值积

【例】
在这里插入图片描述

补码一位乘法(Booth-比较法)

[ X ] 补 = x s x 1 x 2 … x n [X]补=x_sx_1x_2…x_n [X]=xsx1x2xn [ Y ] 补 = y s y 1 y 2 … y n [Y]补=y_sy_1y_2…y_n [Y]=ysy1y2yn,则运算规则如下:

  1. 符号位参与运算,运算的数均以补码表示;
  2. 被乘数和部分积一般取双符号位参与运算,乘数可取单符号位
  3. 乘数末位增设附加位 y n + 1 y_n+1 yn+1 ,且初值为 0
  4. 根据 y n y_n yn y n + 1 y_n+1 yn+1 的取值来确定操作;
  5. 移位按补码右移规则进行;
  6. 按照上述算法进行 n+1 步操作,第 n+1 步不再移位

上面的内容简单理解一下然后看 补码的乘法 补码一位乘 计组 应该就清楚了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值