计算机组成用变形补码运算,【学习计算机组成原理】补,原,移码的加减运算…

计算机组成用变形补码运算,【学习计算机组成原理】补,原,移码的加减运算…文章目录补码的加减运算变补(求补)溢出判断采用变形补码原码的加减运算移码的加减运算补码的加减运算运算公式:[A+B]补=[A]补+[B]补(mode2n)[A-B]补=[A]补+[-B]补(mode2n)规则:加减运算统一,全用加法运算符号位和数值位参加运算变补(求补)这里引出一个概念,《变补》,根据上面A减B的补码等于A的补码加负B的补码,为了描述方便,也可以表述为A减B…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

文章目录

补码的加减运算

变补(求补)

溢出判断

采用变形补码

原码的加减运算

移码的加减运算

补码的加减运算

运算公式:

[A+B]补 = [A]补 + [B]补 (mode 2n)

[A-B]补 = [A]补 + [-B]补 (mode 2n)

规则:

加减运算统一,全用加法运算

符号位和数值位参加运算

变补(求补)

这里引出一个概念,《变补》,根据上面A减B的补码等于A的补码加负B的补码,为了描述方便,也可以表述为A减B的补码等于A的补码加B的变补,这样描述,直接用A和B,不用A和-B,更加直观。

[X]变补 = [-X]补

变补类似补码,变补是全部取反再加1,无符号位一说

实现减法的工作,主要在于求-B的补码([-B]补=B全部取反+1)

溢出判断

假定是4位

计算(-7)+(-6)

-7的补码是1001,-6的补码是1010

1001加1010得1 0011,取后4位,结果是3。

总结溢出现象:

最高位和次高位的进位不同,上面最高位进位1,次高位进位0

和的符号位和加数的符号位不同

计算(-3)+(-5)

-3的补码是1101,-5的补码是1011

1101加1011得1 1000,结果是-8。

正确,最高位和最低位进位都是1,和得符号位和加数得符号位都是1。

采用变形补码

变形补码是为了保留中间结果

机器里,在做运算的过程当中,多添一个(或两个)符号位,这种由添符号位而得到的补码就是变形补码

假定4位,计算6+5

6的补码是0110,5的补码是0101,相加得到是1011,结果是-5,错误。

如果用两个符号位表示,对应的变形补码是01011,第一个符号位表示符号,第二个符号位作为数值部分,结果是11。

溢出判断:

结果的两个符号位不同

原码的加减运算

规则:

符号位和数值部分分开处理

仅对数值部分进行加减运算,符号位起判断和控制作用

加法:同号求和,异号求差

减法:异号求和,同号求差

求和:

数值位相加

符号取被加数(被减数)的符号。

最高位有进位表示溢出

求差:

被加数(被减数)加上加数(减数)的变补

最高数值位产生进位表示结果为正,所得数值位正确

最高数值位没有产生进位表示结果为负,对结果求补,还原为绝对值形式的数值位

最高数值位产生进位,符号取被加数(被减数)的符号。

最高数值位没有产生进位,符号取被加数(被减数)的符号取反。

例如:

(+4) – (-2)

符号位异号,做减法,所以求和

数值位相加4+2=6

符号取4的符号(+)

结果是(+6)

又如:

(-2)-(-4)

符号位相同,做减法,所以求差

2的原码是0010,4的变补是1100,两数相加0 1110。

无进位,对1110求补,0010,值为2

符号取2的符号取反,(+)

结果是(+2)

移码的加减运算

运算公式:

[A]移+[B]移 = [A+B]补 (mode 2n)

[A]移-[B]移 = [A-B]补 (mode 2n)

推导过程:

[A]移+[B]移

= 2n-1+A+2n-1+B

= 2n+A+B

= [A+B]补

[A]移-[B]移

= [A]移+[-[B]移]补

= 2n-1+A+2n-[B]移

= 2n-1+A+2n-2n-1-B

= 2n+A-B = [A-B]补

运算公式2:

[A+B]移 = [A]移+[B]移-2n-1

[A-B]移 = [A]移-[B]移+2n-1

推导过程:

[A+B]移

=A+B+2n-1

=A+2n-1+B+2n-1-2n-1

=[A]移+[B]移-2n-1

[A-B]移

=A-B+2n-1

=(A+2n-1)-(B+2n-1)+2n-1

=[A]移-[B]移+2n-1

= [A]移+[-[B]移]补+2n-1

=[A]移+[[B]移]变补+2n-1

溢出判断:

A与B的符号位相同,且与所得的结果的符号位也相同时,发生溢出

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/180169.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Python金融应用编程:衍生品定价和套期保值的随机过程

    Python金融应用编程:衍生品定价和套期保值的随机过程随机过程对定量融资的许多方面都很有用,包括但不限于衍生品定价,风险管理和投资管理。这些应用程序将在本文后面进一步详细讨论。本节介绍了量化融资中使用的一些流行的随机过程及其在Python中的实现。模型参数模型参数类包含以下随机过程使用的所有参数。为了便于理解,这些参数的前缀是它们所用的随机过程的名称。随机过程的校准将涉及寻找与某些历史数据相符的参数值。对于那些感兴趣的校准,将在我博客后面的后…

    2022年9月27日
    2
  • win10企业版激活简便方法

    win10企业版激活简便方法win10企业版激活简便方法因为之前加固态,就拿去升级,顺便重装了一下系统,谁知道被坑了,给我看的时候显示的是激活,结果是假激活,有很多win10激活都是假激活,只有6个月的使用权限,因为如今装了很多编程软件,实在不想再重新装系统,于是找到了一种比较简单的方法,推荐给有相同境遇的朋友吧,非永久激活,也是6个月而已。1.首先启动超级管理器命令行右键左下角window图标 2、复制命令:s…

    2022年5月30日
    39
  • 自己动手写操作系统–个人实践「建议收藏」

    自己动手写操作系统–个人实践「建议收藏」最近开始看于渊的《自己动手写操作系统》这本书,刚开始看就发现做系统的引导盘竟然是软盘!心里那个汗啊!现在都是U盘了,谁还用软盘。于是考虑用U盘。于是开始以下步骤:1、既然书上说给先要把软盘做引导盘,那我就类似地把U盘做成引导盘。在网上找了半天,发现USboot,于是就用它给自己的U盘做了一个引导盘。2、把编译后的boot.bin文件用绝对扇区工具写入U盘就万事大吉了。同样,在网上找

    2022年10月21日
    3
  • 统计学的Python实现-016:变异系数

    统计学的Python实现-016:变异系数作者:长行时间:2019.03.15统计学解释变异系数:变异系数(coefficientofvariation),又称离散系数,是一个衡量数据离散程度的、没有量纲的统计量。其值为标准差与平均值之比。变异系数的计算公式为:CV=σμCV=\frac{\sigma}{\mu}CV=μσ​其中σ\sigmaσ为标准差,μ\muμ为均值。代码实现importnumpydefcoefficient_of_variation(data):mean=numpy.mean(dat.

    2022年5月29日
    74
  • js设置字符编码utf8_字符串转换成html

    js设置字符编码utf8_字符串转换成htmljs代码在html页面中转换成实体html编码的方法一:js代码转换成实体htmljs代码转换成实体html–红functiontest(){alert(‘测试红’)}test();js代码转换成实体html–绿alert(‘测试绿’)直接在html页面写法是这样写即可:方法一:<script>alert(“测试”);</script>方法二:<script&…

    2025年10月2日
    2
  • ViewStub基本用法「建议收藏」

    ViewStub基本用法「建议收藏」在开发应用程序的时候,经常会遇到这样的情况,会在运行时动态根据条件来决定显示哪个View或某个布局。那么最通常的想法就是把可能用到的View都写在上面,先把它们的可见性都设为View.GONE,然后在代码中动态的更改它的可见性。这样的做法的优点是逻辑简单而且控制起来比较灵活。但是它的缺点就是,耗费资源。虽然把View的初始可见View.GONE但是在Inflate布局的时候View仍然会被Infl…

    2022年6月28日
    24

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号