计算机中的数据运算

放上计算机中的数据的表示方法 

计算机中的数据表示方法-CSDN博客

加减法运算

补码的运算:

        连同符号位一起相加,符号位产生的进位自然丢掉,这里要特别注意机器数的位数,计算数的位数决定了可以存放的数据的大小,加减产生的数据的大小要在机器数可以表示的范围之内。

溢出判断:

        由于同样位数的机器数的正数与负数的相加不会产出溢出,参数溢出的可能是正数与正数的相加或者负数与负数相加;

        方法一:可以通过最高有效位的进位 异或 符号位进行判断,如果为 1 则为溢出。

        方法二:两位符号位判断溢出,正常情况下两个符号位是一样的,0 表示正数,1 表示负数。

移位运算:数据相对于小数点移动 n 位

        左移:绝对值扩大为原来的两倍

        右移:绝对值缩小为原来的二分之一

算术移位:有符号数的移位,符号位不变

逻辑移位:无符号数的移位,符号位发送变化

乘法运算 

乘法运算可用加和移位实现

n = 4, 加 4 次,移 4 次

普通乘法:

1. 符号位单独处理,异或电路实现

2. 乘数的某一位是否为 1 觉得是否相加

3. 乘积的位数的扩大一倍

改进的乘法:

根据乘数的最低位,决定部分积(初始为 0)是否加上被乘数,得到新的部分积

然后将部分乘积和乘数同时右移一位

当移位计数器 C 的次数为 n 时,Q 中存放的乘数的数值位都被移掉

S 为符号位的计算值

Gm 为乘法标志

移位和加控制根据乘数的第 n 为判断是否打开控制门,送入被乘数 X

最后的结果保存到了 A Q 寄存器中 

除法运算 

x/y = x0⊕y0[x*/y*]

1. 上商 n+1 次

2. 第一次上商判断是否溢出,减去被除数的补码(即加上 [-y*] 的补码),得到的余数为负数,则不溢出

3. 移 n 次,加 n+1 次加法,

        余数为正,上商为 1,余数逻辑左移一位,加上 [-y*] 的补码,得到新的余数

        余数为负,上商为 0,余数逻辑左移一位,加上 [y*] 的补码。

A:ACC 存放被除数 与 余数

Q:商

X:除数的正负补码

C:计数器

S 为符号位的计算值

Gd 为除法标志

V 为是否发生溢出

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值