XYXZNB哈哈哈哈(๑•̀ㅂ•́)و✧买!୧(﹒︠ᴗ﹒︡)୨

加法移位运算如何实现,那这小节中我们要学习定点数的源码乘法如何实现,那由于今天窗外的雨下的很大,所以可能会有一些雨声的录入好的,那这个小节中我们会首先探讨乘法运算的实现思想,然后介绍源码的移位乘法如何实现,最后还会介绍补码的移位,乘法如何实现,那由于内容比较多,所以我们把源码和补码的啊全法运算拆分成两个视频,那首先来看一下大家比较熟悉的十进制的乘法如何实现,我们回忆一下小学时候如何做一个乘法运算的,比如说0.985×0.211,如果算上小数点之前的这个0,那么这两个数都是4位都有4个啊数码位那首先是不是一城一九八五下面接下来。首先是不是1×985想法写在下面,然后接下来1×985,但是这次的985要和上一个985进行一个错位,相对于上一个985来说要往前移一位啊,最后2×985应该是=1970那同样的,这个1970的最后一位又要比上一个925,再往前挪了一位,每一个数码V进行乘法运算,得到的这个结果,我们是把它们错位的排列在一起的,然后最后我们会把它进行一个相加得到这样的一个结果,然后最后小学老师会告诉我们如何处理这个小数点,那小时候我们老师教我们的做法是从最后这个位置往前数6位123456,那就到了2的前边,所以小数点最终确定在2的前面这个位置,那这就是0.985×0.211的一个手算方式,这是我们小学时候学过的东西,那现在的问题是这样的,啊,不知道大家有没有思考过,为什么我们在写这些每一位承德的结果的时候,都要错位的把它们写在一起其实这个。呃,不知道大家有没有思考过,为什么我们在写这些每一位承担的结果的时候,都要错位的把它们写在一起,其实这个原因可以结合我们之前介绍过的R进制的这个数值的定义来进行理解,0.211这个数,我们可以把它看作是2×10的负一次方,然后加上1×10的-2再加上1×10的-3,然后0.985,我们不妨把它看作是985×10的-3次方,所以这两个数相乘我们可以把它拆分成这样的形式,985×10的-3次方再乘以1×10的-3次方,也就是985×1×10的-6次方这一项再加上985×1再乘以10的-5次方,也就是和这儿的第2项的一个结合,那最后这项也是一样的,所以其实这个式子如果我们把中间加合的这些部分给它扩展一下的话,其实它是长这个样子九八五乘以十六次方那不就相当于九八五这个位置小数点往前一六位码九八五乘以。然后985×1再乘以10的-5次方,那就相当于从985这个数这把小数点往前挪5位,那最后这个数也是一样的,985×2=1970,本来小数点在0的后面成了一个10的-4,那就相当于往前挪4位,所以我们最终要给这几个小数进行一个加工,是不是得保证这个小数点是相互对齐的,而小数点是不是对齐就会导致我们后边这些数有这样的一个错位的规律,所以这就是为什么我们小时候学的乘法需要把每一位的背积进行一个错配的原因,这才是它的本质好,那这是我们熟悉的实际之乘法,接下来我们把这种乘法的思想迁移到二进制的乘法,同样先来看手算的方式,假如有这样的两个而且是数的相乘,两个定点的正小数进行相乘,并且每个定点数占5位,那类似于10进制0.985×0.211的乘法,首先我们应该用乘数的最低位这个结果幺零幺。阿城上这个被乘数得到的结果应该是妖妖零妖,然后再用陈述的下一位4谛为乘以这个被乘数那得到的结果,同样是1101不过,我们要把它往前挪一位进行一个错位,好接下来0×以这个被乘数那得到结果应该是4个0,最后是1×这个被乘数得到,结果是1101,那把他们错位并且依次相加之后,可以得到这样的一个结果,好接下来确定小数点的位置,应该是从最后这个位置往前移8位,也就是刚好到了1的前面,那原因和10进制是一样的10进制最终得到的结果,我们在确定小数点的时候采用的最原始的方法是啊看一下啊,这个被乘数,它应该是小数点往前移1233位,然后这个乘数的话又是从这开始往前移4566位,所以这两个数加起来总共需要从最后这个位置往前移6位,用这样的方式来确定小数点的位置方式也是一样的我们使用和之前类似的思路这个是。一小数点的位置那二进制的确定方式也是一样的好,现在我们使用和之前类似的思路啊,这个式子啊,进行一个完善,其实每一位和被乘数的积进行错位相加的原因是这样的,我们把陈述按位权进行展开,然后把被陈述陈述各个项分别进行相乘相加进行一个展开,那么就会得到这样的一个式子,第1项对应于1101×2的-8次方,也就是最低位的这个未知,然后第2个部分是对应了4DV的危机,第3部分成了一个0,但是我们还是把它统一的写成0.0000这样的一个形式,保持队形一致,那最后这一项也是类似,所以我们模仿实性阵得到的这种乘法规则其实是正确无误的,我们把它展开就可以看到背后的一个逻辑二进制的源码惩罚实现起来要比十件因为二进制的成熟每一位只有可能出现的情况如果出现一那么这次二进制的源码惩罚实现起来要比十件因为二进制的成熟每一位只有可能出现的情况如果出现一那么这次得到。10进制还要方便,因为二进制的乘数,每一位只有可能出现0或者1这样的两种情况,如果出现1,那么这一次得到的这个未知就刚好和被乘数是一样的,如果出现的是0,那么这次得到的贝基我们直接去泉林就可以只有可能出现这样的情况,另外在这个式子里面我们成瘾什么2dev82的福奇2的负5,这样的运算用计算机是不是很方便实现1101×2的-5,其实就相当于把1101右移5位对吧?因为左翼等价于承佑一等家鱼除那乘以2的-5次方,不就是除以2的5次方吗?也就是向右移5倍,因此每一位和被乘数相乘所得到的这个危机,我们可以很方便地用一味地算来实现好,现在我们已经模拟了手算的一个思想,接下来我们尝试着用机器来实现这个惩罚我们还有一些没有考虑到的问题滴我们这个例子当中是用两个小树进行相乘但是实际的数字肯定有政府的。进行相乘,但是实际的数字肯定有正负之分,所以符号W我们应该如何处理呢?这是第1个问题,第2个问题,我们5位的这个两个定点小数相乘之后的结果有可能到达九被这么多,几乎是翻了一倍,那如果计算机的机器字长本来就只有5倍,也就是每一个寄存器只能存放5位的啊数据,那我们最终得到了这个成绩,已经超出一个寄存器可以保存的这个容量,那这个问题又要怎么处理呢?然后第3个问题,刚才我们这个例子当中陈述的每一位和被乘数相乘所得到的累积,是不是都要保存下来,然后最后再来统一的相加,也就把这4个数分别的保存在4个寄存器里,最后再来进行统一的参加,显然这种方式是不靠谱的,因为我们这进行举例的两个数,它的长度还不是很长,如果说是两个64位的二进制数进行相乘,那就意味着会有64个未知那就是我们需要有专门的六十四个计算器保存着六十四个未接。及那这是不是意味着我们需要有专门的64个寄存器来分别保存这64个微机,这显然是比较浪费的一种行为,所以这个问题又要如何处理好,接下来我们带着这三个问题来寻找答案,我们来看这样的一个例子,假设计算机的机器字长为N加一倍,也就是5倍有一个符号位,然后数值位是N位,现在有X和Y,这样的两个数这儿分别给出了元码,X是一个复数,Y是一个正数,然后要用源码的移位乘法来求得X乘,以Y的一个乘好之前我们已经探讨了两个元码,正数相乘,应该怎么计算,那我们可以沿用之前这种思路符号为我们可以单独地处理啊,处理的方式很简单,就是把两个数的符号为进行一个异或运算,就可以确定他们的成绩到底是正是负然后用被乘数和乘数的绝对值成了我们之前提到的正数的思想的绝对值的一个圆满的。提到的正数乘以正数的这种乘法运算的思想,那我们把X和Y的绝对值的一个源码给它写出来,好,现在回头来解释一下这个符号位为什么是这么确定的,还记得易货的规则吗?易货的规则就是如何参与易货运算的两个二进制位相异不一样,一个是0一个是1的话,那么是1的话,那么最终易货的结果就是1而如果两个2进制数相同,比如说0和0亿或或者1和1亿或那么最终得到的结果都是0,那由于正数的符号位是0,负数的符号位是1正和负相乘,得到一个负数正和郑湘城或者复核复相城,都会得到一个正数,因此用异或的逻辑来确定啊,乘积的一个符号倍是没有问题的,所以符号费的决定很简单,接下来我们来看这两个绝对值的香橙,如何用机器来实现好,现在我们来回忆一个很远古的PPT,还记不记得,在第1章里边,我们在聊到运算器的基本组成的时候,给过这样一个表。一个很远古的PPT还记不记得,在第1章里边,我们在聊到运算器的基本组成的时候给过这样的一个表,我们运算器里面有ACCMQ和X也就是通用寄存器,有这样的三个必不可少的计算器,当我们进行乘法运算的时候,ACC这个计算器里边存放的是乘积的高位,而Mt里边存放的是陈述还有乘机的低位,然后exo这个通用寄存器里面存放的是被陈数好,现在我们来深挖一下背后的一个运算的过程,首先X这个通用寄存器里面要存被乘数,那么被乘数就是X的绝对值的一个源码,也就是符号位为0,然后后边1101MQ里边存放的是乘数,这是最开始的一个状态,那乘数是Y的绝对值的源码,也就是01011 They的是什么叫陈琪的高位神迹的大家一会儿会有机会大家只需要知道之前我们需要把cc啊,切实的体会在这,大家只需要知道在乘法运算进行之前,我们需要把ACC这个寄存器给清零,而现在对比手算乘法,我们刚开始是不是计算乘数的最低位和被乘数的一个位积对吧?而现在陈述存在MQ里边,我们在这儿把最低位的颜色涂成了更深的灰色,所以此时更深的灰色这一位就是当前要参与运算的一个位,噢,那规则是这样的,如果当前参与运算的这个V=1,那么我们需要让ACC的值加上被乘数,而如果当前的这个V为0,那么ACC要加上0,也就是什么也不加好,目前来看现在要参与运算的这个V是1,所以我们让ACC里边的值和被乘数进行一个相加,那这个过程是由a,而U也就是算术逻辑单元里面的完成了这两个数相加之后的结果是零幺幺零幺香江的结果被放到acc计算器。被放到ACC寄存器里边好,那这相当于我们把第1个未知给算出来了,那接下来我们要计算第2个未知的时候,由于第2个未知和第1个未知进行相加的时候,需要有一个错位,所以计算机的处理方式是让ACC和MQ里边的这些呃数据统一的逻辑右移一位,所有的这些位都向右移,那ACC的最低位会移到MQ的最高位这个位置变成这个样子,那由于是逻辑又一所以我们在高位补的视频号,那这就相当于我们在接下来进行加法操作的时候,是让下一个危机和之前得到的危机进行了一个错位的相加,另外这个地方大家会发现,MQ里边之前的最低位已经被我们移出了寄存器,其实就是直接丢弃了,因为陈数的最低位之前已经用过了之后可能用不到,所以我们可以直接把它丢弃好,接下来我们要计算的是次低位和这个被乘数的一个未知由于之前的友谊这个城市来到了最低。的一个危机,那么由于之前的又一这个陈述的次低位,此时来到了MQ的最低这个位置,因此接下来同样的我们是用MQ的最后这一位进行喂鸡的运算,那由于这个位也是一因此接下来我们会让ACC的内容加上被陈述,也就是刚才我们画框的这个加法那这个加法得到的结果应该是10011,这个大家可以再具体算一下,所以这次的加法导致ACC的结构更新为这样的一个数好,那下一个危机的处理方式是不是也是类似的?为了让下一个危机和之前得到的这个部分进行一个错位的相加,所以我们会让ACC和MQ统一的右移移位,再次强调是逻辑右移,所以我们高位要补0这是我们的这个部分我们可以把它称为部分机由于当前参与运算的只是零所以这一次我们让ac的值当前为。好继续,由于当前参与运算的这个V,它的值是0,所以这一次我们让ACC的值当前位加0就可以,那ACC+0之后,它的值是不会变的啊,每一次加法之后我们都会进行一次逻辑右移,所以接下来右移的结果是这样的好,接下来要参与运算的这个V它的值是一,所以我们让ACC加上被乘数X也就加上最后的这一项,所以ACC的结果更新为这个值,做完加法之后再进行逻辑右移,得到这样的一个结果,好此时MQ的最后一位是0,但是这个0我们不需要让他参与这个未知的运算,因为这个零它其实是原本的乘数的一个符号位,所以在数值位有N位的情况下,我们只需要重复N次加法的移位,就可以得到最终正确的结果,那定点小数它的小数点是隐含在符号位后面的这个位置吧 Why的绝对值相乘的结果就是零点幺零零零幺幺幺。一直相乘的结果就是0.10001111和我们手算得到的结果是一致的,那结合之前手算的这个过程,相信大家能够理解为什么每一次要进行一个家法,每一次要进行一个移位,那这个人也希望大家能够好好体会,只要能够理解这个原理,那你肯定也能记住做题的方法好的,那么经过之前这一堆骚操作,我们得到的其实是X和Y的绝对值的一个惩击,别忘了我们还需要处理符号位,所以最后我们还需要根据X和Y的符号为避祸的一个结果来代替修改这个号位,那由于1和0亦或是等于1,所以我们把这符号被修改为1,这样的话我们就得到了X和Y用源码的移位乘法得到的一个值,那这个值同样是源码的表示为什么说acd边处的是陈基的高位而最终成绩的地位就应该能够理解这两个名字背后的含义了为什么。同意了,另外为什么要叫源码的一位乘法呢?因为我们每一次参与运算的都只有一个位,所以叫源码的一位乘法,那其实还有更快的一种乘法,实现的方法就是源码的二位乘法,每次有两个胃来参与运算,那这个地方就不拓展了,大家重点要理解的是这是源码移位乘法,好的,那么刚才我们是用机器的方式来一步一步模拟,接下来我们来看一下,如果我们手这么做题手算的话,应该如何来描述这些乘法执行的规则,这个部分我是直接从王道书上呃截下来的,要计算X和Y的乘积,那么数值部分我们是通过绝对值相乘来进行运算的,不过这个地方大家会发现,我们课本里边就是被乘数和乘数,它是用这种双符号位的形式来进行描述的也不会出错在凯里边他就是从单位的一种方式都可以不过由于陈法一定要使用符号为所以为了方便大家记忆。5号位当5号位都可以,不过由于无码的乘法啊,一定要使用双符号位,所以为了方便大家记忆,大家在做这个源码乘法的时候,也可以把这个被乘数写成这种双符号位的形式保持和补满的一个统计,好,那通过之前的讲解我们知道陈数只有数值位会参与,运算符号位是不参与运算的,所以在我们手算的时候,其实我们只需要写出陈述的这个数值部分就可以了。另外我们知道被乘数的这个值是存到了通用寄存器X当中,然后乘数刚开始是存到了MQ乘商计算器里边高位的部分机,我们是用ACC来记录,刚开始需要初始化为0,好,那这个地方我们画了小横线的这一位就是当前要参与运算的这一位,也就这所谓的C4,当C4=1的时候,需要让ACC里的值加上X也就是被乘数的绝对值,当C4=0的时候是要加上0每次加法运算得到一个结果之后一定需要进行一次逻辑又一由于所以高位一定都是。点名的时候是要加上0,每次加法运算得到一个结果之后一定需要进行一次逻辑诱因,由于是逻辑诱因,所以呃高位一定都是补0,另外这个右移会导致MQ,也就是乘商寄存器里边呃之前的最低位被丢弃好,那在数值位有N位的情况下,只要经过N轮的加法和移位就可以得到绝对值相乘的一个结果,然后最后我们再通过符号位的一个异或运算,可以确定符号位应该为多少,那这个地方课本上是写了X乘以外的一个用二进制表示的真值,那如果大家自己答题的话,最好还是再写出这个争执他所对应的源码,机器数好的,总之对源码进行移位,乘法无非就是进行N轮的加法和移位,每一次加法之后一定都需要向右啊,并且是逻辑右移一位就可以得到最终的结果而至于每一步的家法什么这个需要看当前的最低位数为一的话那就是acc加。而至于每一步的加法需要加什么,这个需要看当前MQ的最低位,它如果为1的话,那么就是ACC加上X的绝对值的一个元宝,如果MQ当前最低位为0,那么就是ACC加上0也就什么也不加,直接用E就OK好的,那以上就是原码乘法的一个实现方式啊,对了,这个小节当中我们是使用小数的原码乘法作为例子,其实两个整数的乘法实现也是类似的,大家只需要把这个小数点改成逗号,就可以另外两个小数相乘,最终得到的结果,这小数点是固定在符号位后边这个位置,而如果大家算的是两个整数的乘法,那么最终小数点应该是固定在这个位置才对,所以整数的运算和小数的运算很类似,这就不再赘述好的,那大家可以再结合这个PPT再来消化一下。

2.2.2 .6定点数的乘法运算-1原码一位乘法相关推荐

  1. 定点乘法运算之原码一位乘法

    x * y = z 讨论已知x和y的情况下,怎么通过原码一位乘法方法得出z~~ 首先说下运算规则~ 1. z的符号位通过x和y的符号位进行异或运算得到~(这个很好理解哒,负负得正,正正得正,正负得负嘛 ...

  2. 【计算机组成原理】定点乘法运算之原码两位乘法

    讨论x * y = z 采用原码两位乘法,已知x和y,如何求得z 原码两位乘法和原码一位乘法一样,符号位不参加运算 部分积和被乘数x均采用三位符号,乘数y末位每次要加一个c,c一开始是0 根据如下法则 ...

  3. [计算机组成原理]2-8、定点数原码一位乘法

    前言 在学习定点数的原码一位乘法之前,我们要知道我们在学的是什么,定点数的原码乘法其实完全用十进制的乘法规则来计算,只需要将逢十进一改为逢二进一即可: 既然我们都知道定点数的原码乘法了,我们为什么还要 ...

  4. (计算机组成原理)第二章数据的表示和运算-第二节5:定点数乘法运算(原码/补码一位乘法)

    文章目录 一:乘法运算基本思想 二:原码一位乘法 (1)实现原理 (2)手算模拟 三:补码一位乘法( B o o t h Booth Booth

  5. (计算机组成原理)第二章数据的表示和运算-第二节6:定点数除法运算(原码/补码一位除法)

    文章目录 一:除法运算基本思想 二:原码一位除法:恢复余数法 (1)实现原理 (2)手算模拟 三:原码一位除法:加减交替法(不恢复余数法) 四:补码一位除法 五:总结 一:除法运算基本思想 关于定点数 ...

  6. (王道计算机组成原理)第二章数据的表示和运算-第二节7:定点数除法运算(原码/补码一位除法)

    王道考研复习指导获取:密码7281 专栏目录首页:[专栏必读]王道考研408计算机组成原理万字笔记.题目题型总结.注意事项.目录导航和思维导图 文章目录 一:除法运算基本思想 二:原码一位除法:恢复余 ...

  7. 【细碎知识2】定点数的乘除运算(原码一位乘、恢复余数法、加减交替法)

    目录 1.定点数的乘法 1.1 原码一位乘 2.定点数的除法 2.1 恢复余数法 2.2 加减交替法 2.3 比较恢复余数法和加减交替法 方法要搭配例题一起看,才能看懂 1.定点数的乘法 定点数的乘法 ...

  8. 【王道计组笔记】定点数编码方式(原码,补码,反码)

    无符号数:整个机器字长全部二进制位均为数值位,没有符号位,相当于数的绝对值 表示范围:n位二进制数0~2^n-1 有符号数:用一位二进制数表示正负(0正1负) 小数点的表示问题:约定小数点的位置来实现 ...

  9. 计算机组成原理学习笔记:定点数、浮点数、原码、反码、补码、移码

    定点数与浮点数 所谓定点数就是指小数点的位置固定不变 而浮点数是小数点的位置是不固定的,会浮动 1 ) 定点数 用熟悉的十进制数来类比,定点数就是我们平时更习惯使用的常规的计数方式,我们会显式的标明小 ...

最新文章

  1. python tcp不用循环监听_网络编程: TCP
  2. 接口文档-swagger-bootstrap
  3. css数字发光,每日CSS_发光文本效果
  4. java三大集合_java中三大集合框架
  5. 全球及中国认知文档处理行业运营策略与应用前景分析报告2022版
  6. 移动端向服务端提交数据——实现简单登录
  7. nginx虚拟主机(基于域名虚拟主机、基于IP地址虚拟主机、基于端口虚拟主机设置)
  8. console.log()不显示结果_RNA结合蛋白与RNA的缠绵故事,教你不做实验发文章
  9. 博物馆奇妙夜java_博物馆奇妙夜 2 Night At The Museum
  10. 单片机c语言入门自学,单片机C语言入门教程
  11. MAG3110(可替代hmc5883l的磁力计) stm32f1xx调试心得附源代码(以后可能会陆续更新四轴相关的传感器,欢迎关注)
  12. 【数据结构--二叉树】--附超详细图解
  13. MultipartFile transferTo() FileNotFound 拒绝访问
  14. Latex科技论文写作
  15. Linux学习笔记精华总结(选自鸟哥的Linux私房菜)
  16. vscode中输入感叹号无法识别html模板
  17. 2020仙气十足的女生个性网名
  18. 转:陈佩斯曝光春晚背后种种肮脏行径
  19. Windows Server 2012 和 System Center 2012 SP1,Virtual Machine Manager 中启用的软件定义的网络...
  20. 2021年江苏镇江公务员考试报考指南

热门文章

  1. scrum回顾_如何开好scrum回顾会议
  2. Plato Farm深耕GameFi赛道,2022年是否成为顶级元宇宙代表之一?
  3. 读取bmp格式位图文件到二维数组(C语言)
  4. 温湿度DHT11传感器时序详解
  5. C#中的字段与属性的区别及属性的作用
  6. 通过JS动态设置meta标签,根据手机屏幕分辨率自动缩放适配各手机(包括适配华为、oppo大屏幕手机、钉钉、微信)
  7. 未能注册模块(程序路径)\ieframe.dll提示
  8. android pdf 文件加密,加密PDF与PdfBox-Android不兼容
  9. 深度学习AI克隆人声模型
  10. MATLAB中split函数使用