• Pharmaceutical的同学们都看过来,关于补码运算的复习相关内容


    虽然是全英文的课程,这次总结内容不用英文了。

    一般在计算机原理中,对两个操作数进行运算会使用C作为进位的标志位,而V作为溢出的标志位。

    一般我们学完计算机原理,都知道正数的原码反码补码都一样,而问题都在负数上。负数的反码是原码的除去符号位之外各个位上取反,而负数补码则是除去符号位之外对原码各个位取反再加1。减去一个数等于加上对应的补码。

    而溢出情况的判断可使用两种方法:

    1 单符号位表示法

    两相同符号数相加,结果符号(符号位有进位将1丢掉)与被加数相同,否则为溢出

    2 双符号位表示法

    00表示运算结果为正数;
    01表示运算结果正溢出;
    10表示运算结果负溢出;
    11表示运算结果为负数。

    描述了一堆抽象的东西,不如举例。-3加上-4,如下:

       1111  1101
    + 1111  1100
    -------------------------------
      11111 1001(补码形式)

    再变成原码,即-7

    不知道期末是否会考补码的乘法和除法。不管怎样,这里列一下补码乘除法方法:

    补码乘法:

    x*y = -(-x*y)

    举例-3,-9
    101 * 011 = -(011 * 011) = -(01001) = 10111

    或者直接让符号位参与运算:

    补码除法

    第一步:被除数如果和除数同号,则被除数减去除数;如果异号则加上除数;

    第n步(n大于1):余数和除数同号,商1,余数左移一位减去除数;若异号,则商0,余数左移一位加上除数。

    祝大家考试顺利取得好成绩

  • 相关阅读:
    2020年4月13日
    2021年4月12日
    梦断代码阅读笔记02
    Shell基本命令
    远程链接Linux
    Linux文档与目录结构
    VMware与Centos系统安装
    linux 第一天
    day88 Vue基础
    python 生成随机验证码
  • 原文地址:https://www.cnblogs.com/ubiwind/p/7986765.html
Copyright © 2020-2023  润新知