如何用计算机算乘法,计算机如何做乘法运算的?

news/2025/1/16 7:42:35/

通过加减法和移位来实现的。

把除法转成乘法,乘法转成加法,减法也转成加法。

具体的操作步骤:

假设计算3*3,原码是0011 * 0011(以4位存贮单元,因为是原码,最高位不代表符号位)

3个寄存器分别存放乘数0011 被乘数 0011 一个部分积初始值为0。

首先判断乘数寄存器(目前为0011)的最低位为1。如果为1则将部分积的值通过加法器加上被乘数0011。因此此步结束后部分积寄存器内容为0011。

将乘数寄存器右移一位,同时将部分积寄存器也右移一位。同时乘积寄存器最低位溢出丢弃。部分积寄存器高位补0,地位溢出后填充到乘数寄存器。因此。部分积寄存其原来的值0011变成了0001。乘数寄存器0011变成了1001(这里低位的1溢出,最高位被部分积溢出的1填充)。

判断乘数寄存器最低位(0001).为1。将部分积通过加法器加上被乘数0011。因此此不结束后部分积寄存器内容是(0001+0011=0100)。

乘数寄存器右移一位,同时将部分积寄存器也有右移一位。同第2步。因此部分积寄存器原来的值0100变成了0010。乘数寄存器1001变成了0100,低位1溢出,最高位被部分积溢出的0填充。

判断乘数寄存器低位为0不做加法操作直接做第2步的移位操作。既有了部分积变成0001,乘数变成了0010。

判断乘数寄存器低位为0不做加法操作直接做第2步的移位操作。既有了部分积变成0000,乘数变成了1001;此时所有乘数全部处理完毕。

最终结果将部分积作为高位,乘数寄存器作为低位得到值为00001001 换算成10进制得到9。


http://www.ppmy.cn/news/973283.html

相关文章

chatgpt赋能python:Python中如何计算乘方?

Python中如何计算乘方? 在Python中,乘方是一种常见的数学计算。如果你正在寻找一种快速、简便的方法来计算数的乘方,那么Python是你的最佳选择。在此文章中,我们将介绍Python中计算乘方的几种方法,并帮助您选择最适合…

利用对位相乘法计算线性卷积-附Matlab代码

目录 1.线性卷积原理 2.利用对位相乘法计算线性卷积 3.Matlab实操 3.1源代码 3.2仿真结果 线性卷积原理 公示(1)为两个离散非周期序列进行线性卷积 一般我们计算线性卷积时使用图解法最为常见,简单概括为“变量置换”、“翻转”、“平移…

chatgpt赋能python:Python中如何使用乘法

Python 中如何使用乘法 Python 是一种强大的编程语言,提供了许多有用的功能和工具,其中乘法是其中一个基本的操作符。在本文中,我们将介绍 Python 中乘法的用法,以及在不同情况下如何使用它。 什么是乘法? 乘法是一…

NTT计算实例by ChatGPT

假设我们要计算多项式 f(x) x^3 2x^2 x 3 在模数为 5 的情况下的NTT,模数为 p 5。首先,我们需要将多项式系数表示为模 p 的剩余系。 f(x) x^3 2x^2 x 3 ≡ x^3 2x^2 x - 2 (mod 5) 接下来,我们需要选择 NTT 中使用的根。对于模数…

乘法的运算过程

乘法是我们日常生活中经常使用的运算。如果是两个非常简单的事物,我们用口算就能解决, 即使是比较大的数我们也只要用一支笔和一张纸就能够非常轻松的完成。这种方法我们在小学的时候就已经掌握了。那么计算机又是如何实现乘法的呢?这个问题就…

【计组】计算机乘法运算

写在前面: 这一部分的知识点包括:原码一位乘、原码两位乘、补码一位乘、补码两位乘。本篇博客仅介绍原码一位乘,其余的操作方式类似。 唐朔飞版《计算机组成原理》(第2版)中以0.1101*0.1011为例,对计算机中的乘法运算进行了讲解。…

学习使用原码一位乘的思想计算串行求解乘法问题【编程题】

学习使用原码一位乘的思想计算串行求解乘法问题,并且程序需要满足下列要求: 不能使用乘法运算符(*)以及除法运算符(/), 使用后判为零分;不能使用除scanf( )、printf( )、abs( )之外的库函数,使用后判为零分&#xff1b…

计算机的运算方法--乘法运算

文章目录 前言一、乘法运算的分类二、乘法运算简介 1.原码一位乘法2.原码两位乘法3.补码一位乘法4.补码两位乘法 前言 在计算机中,乘法运算是一种很重要的的运算,有的机器直接由硬件乘法器完成乘法运算,有的机器内没有乘法器,但可…