计算机基础_Day2

1.知[x]补求[-x]补

  • [x]补连同符号位在内,每位取反,末位加一。

2.算术移位规则

  • 实质为该数乘或除以2^n。
    在这里插入图片描述
  • 有符号数的移位为算术移位,无符号数的以为称为逻辑移位。
  • 为避免算术左移最高位丢1,可采用带进位(Cy)的 移位。即将符号位移至Cy。

3.补码运算规则

整数先求各数的补码相加后,对于整数而言对2^(n+1)取模,小数对2取模。目的将进位产生的1丢掉。

溢出判断:

补码定点加减运算判断溢出有两种方法:
单符号位法和双符号位法。

单符号位法:

  • 对于加法溢出情况为相同符号位的数相加才可能出现溢出。
  • 对于减法相同符号位相减不可能出现溢出。
  • 结论:
    不论加减法只要参加运算的数符号位相同,结果的符号与其不同,则溢出。
    为节省时间判断是否溢出的方法:
    将符号位产生的进位C(f)与最高有效位产生的进位异或操作后进行判断。(异或,相同为0,不同为1)
  • 当结果为1时溢出,为0无溢出。
  • 其中细分为正溢出,和负溢出。
  • 符号位的进位为1时为正溢出,否则为负溢出。

双符号位法:

  • 了解此法前,先了解一下,小数补码的定义:
    整数时:
    [x]补=2^(n+2)+x(x为负)
    小数时:
    [x]补=x(x为正)
    [x]补=2+x(x为负,mod2)
    同理:当模数为4时,形成了双符合位的补码。
    [x]补=2^2+x(x为负,mod4),其引入在判断溢出时有特殊作用。
    补充:从补码定义可以发现,当x为负数时,补码运算还是要进行减法运算,这与补码初心只要加法有点违背,后面发现一种负数补码的运算规则,也可求补码(即除符号位不变,每位求反,末位加1)反码就因此而生。
    运算规则:
    2位符号位连同数值部分一起参与运算。
    判断溢出的规则
    当2位符号位不同时,表示溢出,否则无溢出。第一个符号位永远代表真正的符号。第一位为0(即正)则上溢(正溢出),为1(即负数)则为下溢(负溢出)。
    以上结论对于整数而言同样适用。

乘法运算

  • 计算机中乘法运算很重要,现在有的机器由硬件直接完成乘法运算,有的机器按照乘法运算的方法依靠软件编程实现。可见掌握它有助于乘法器的设计,和乘法编程。

我们都会笔算乘法,例如:

在这里插入图片描述
分析其在计算机中实现的缺点:其一,将4个位积一次相加,机器难以实现;其二,乘积位数增加了一倍,这将导致器材的浪费和运算时间的增加。正因如此,我们将笔算乘法进行改进。

笔算乘法的改进

在这里插入图片描述
将其转化为移位后(即将乘法转换成移位和加法运算):从里向外开始分步运算:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
*原码一位乘规则:
成绩的符号位由两原码符号位异或运算结果决定。
成绩的数值部分由两数绝对值相乘,其通式为:
在这里插入图片描述

  • 部分积右移法
  • y=1,部分积+被乘数x,右移一位。
  • y=0,直接右移一位。
  • 在这里插入图片描述
    优点:可以利用现行加法器,电路设计简单。
    缺点:加法运算为串行进行的,每一步都要占用若干时钟周期,效率较低。
  • 大规模集成电路的发展给乘法器的设计带来了曙光——阵列乘法器,其思想为资源换效率。
  • 原码阵列乘法器:其规则就是原码一位乘。

除法运算

笔算除法在计算机上的缺点:机器不能“心算”上商,必须通过比较被除数和除数绝对值的大小来确定商值。
在这里插入图片描述
改进后:恢复余数法
特点:当余数为负时,需要加上除数,将其恢复原来的余数。
缺点:每当余数为负数时,都需要恢复余数,这就延长了机器除法的时间,操作也很不规则,对线路不利。加减交替法克服了这个缺点。
加减交替法:
特点:当运算过程中出现不够减,就不恢复余数,根据余数的符号继续往下运算,因此步数固定,控制简单。
运算规则:当余数为正时,商“为1”,余数左移一位,减除数;
当余数为负时,商为“0”,余数左移一位,加除数。

发布了50 篇原创文章 · 获赞 8 · 访问量 3081

猜你喜欢

转载自blog.csdn.net/jiahuan_/article/details/104845331
今日推荐