补码一位乘法原理(布斯编码详讲)

最近在看补码乘法的时候,感觉到很奇怪的一点,那就是补码的一位乘法,就是上网查了大量的资料都没有理解到它真正的原理,总感觉还是不会。那么,补码乘法的原理到底是什么呢?而让我们一直困惑的点是哪里呢?其实就是寄存器中多了一个辅助位,而这也恰恰是困惑了很多人的点,为什么要多一个辅助位,而又为什么每次部分积相加时,到底加什么,需要用辅助位和辅助位的前一位的差来判断呢?相信很多朋友在这里都有疑惑,那么,下面开始慢慢说来。

网上很多人都根据补码的表示公式,一步一步推导出来的,但是这个我没看明白,给大家说另外一种个人认为相对简单的方法。那就是布斯编码。我们看下面的例子,假如现在我要算的是11010000*01111110,而这个计算,如下图:

我们计算的时候,是根据上面的竖式来计算的,原理就不说了,乘数中每位分别乘被乘数,然后在相加,这样的话,我们又6个非0的部分积,也就是要加6次,但是,我们可以把01111110写成10000000-00000010,这样的话我们就可以把原式写为11010000*(10000000-00000010),探后根据乘法分配律,写为11010000*10000000-11010000*00000010,这样的话,由以前的6次部分积的相加变成了2次部分积的相加,提高了乘法的效率。而10000000-00000010,看下图:

我们不借位,我们直接写成-1,那么此时其实01111110=100000-10,所以11010000*01111110=11010000*100000-10。这种就是布斯编码,看下图:

而我们可以根据上图得知01对应1,11对应0,00对应0,10对应-1,所以我们就得知了为什么补码一位的乘法运算中,算部分积的时候,到底加什么是由辅助位和前一位的差来决定的,而连续两位对应重新编码后的一位,所以我们就必须在乘数的最后补一位辅助位,来辅助完成乘法运算,而补得这位辅助位是0,刚好应对我们刚开始计算的时候,辅助位是0.而这也恰恰说明了为什么补码一位的乘法运算都是双符号位,因为我们在存放乘数的寄存器中,加了一位辅助位,而根据CPU内部总线的特征,所以导致其余的寄存器也是和他的bit位数相同,所以采用了两位的符号位。

以上是个人理解,难免有错误,希望大家指出。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/373688.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

宿州降本 提质 增效 数据采集监控平台提高生产自动化水平

在当今竞争激烈的市场环境中,企业追求降本、提质、增效已成为发展的关键。而我们的[数据采集监控平台名称]数据采集监控平台,正是助力企业实现这一目标的强大工具。 LP-SCADA数据采集监控平台是工业4.0中主要的数据采集系统之一,主要针对产线…

nginx的知识面试易考点

Nginx概念 Nginx 是一个高性能的 HTTP 和反向代理服务。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。 Nginx 专为性能优化而开发,性能是其最重要的考量指标,实现上非常注重效率&#…

for nested data item, row-key is required.报错解决

今天差点被一个不起眼的bug搞到吐,就是在给表格设置row-key的时候,一直设置不成功,一直报错缺少row-key,一共就那两行代码 实在是找不到还存在什么问题... 先看下报错截图... 看下代码 我在展开行里面用到了一个表格 并且存放表格…

Python数据分析案例50——基于EEMD-LSTM的石油价格预测

案例背景 很久没更新时间序列预测有关的东西了。 之前写了很多CNN-LSTM,GRU-attention,这种神经网络之内的不同模型的缝合,现在写一个模态分解算法和神经网络的缝合。 虽然eemd-lstm已经在学术界被做烂了,但是还是很多新手小白或…

昇思MindSpore学习笔记3-03热门LLM及其他AI应用--基于MobileNetv2的垃圾分类

摘要: MindSpore AI框架使用MobileNetv2模型开发垃圾分检代码。检测本地图像中的垃圾物体,保存检测结果到文件。记录了开发过程和步骤,包括环境准备、数据下载、加载和预处理、模型搭建、训练、测试、推理应用等。 1、实验目的 了解垃圾分…

DDoS攻击详解

DDoS 攻击,其本质是通过操控大量的傀儡主机或者被其掌控的网络设备,向目标系统如潮水般地发送海量的请求或数据。这种行为的目的在于竭尽全力地耗尽目标系统的网络带宽、系统资源以及服务能力,从而致使目标系统无法正常地为合法用户提供其所应…

aop的几种动态代理以及简单案例(1)

Sping AOP是通过动态代理模式实现的,具体有两种实现方式,一种是基于Java原生的动态代理,一种是基于cglib的动态代理。 1.jdk动态代理 1.1创建需要被代理的方法接口 public interface TargetInteface {void method1();void method2();int me…

到底哪款护眼大路灯好?五款适合学生用的护眼落地灯分享

到底哪款护眼大路灯好?影响青少年近视的最大“杀手”竟是学习环境光的影响。而对于这种情形,尤其是对于需要长时间用眼的学生群体和伏案工作者来说,护眼大路灯简直就是必备神器,但有人会问,我手机打开一搜就出现了那么…

有没有适合低预算党的主食冻干?希喂主食冻干真实喂养体验分享

铲屎官们好,今天来和大家聊聊一款让我喂出花来的主食冻干——希喂CPMR2.0大橙罐。作为一个注重猫咪身体健康和幸福感的铲屎官,怎么会不喂主食冻干。铲屎官们都致力于找到一款适合自家猫咪和平衡自己预算的主食冻干,我也做了不少尝试&#xff…

Apache配置与应用(企业网站架构部署与优化)

本章结构 如果要修改以上文件中的内容,想要生效,需要在主配置文件中能够扫描到这个默认文件的修改: 文件在: Apache 连接保持 Apache 的访问控制 针对IP地址的限制缺陷是不可预知性,需要事先直到对方的IP才能进行基于…

深度学习模型分布式训练

单机单卡训练 单机多卡训练 使用torch.nn.DataParallel方式,修改简单,但单进程效率慢 使用DDP方式,多进程效率高,推荐 多机多卡 模型并行 示例:

如何让自动化测试框架更自动化?

一、引言 ​对于大厂的同学来说,接口自动化是个老生常谈的话题了,毕竟每年的MTSC大会议题都已经能佐证了,不是大数据测试,就是AI测试等等(越来越高大上了)。不可否认这些专项的方向是质量智能化发展的方向&…

Redis基本数据结构

Redis基本数据结构 ​Redis​是C​语言开发的一个开源的(遵从BSD​协议)高性能键值对(key-value​)的内存数据库,可以用作数据库、缓存、消息中间件等。它是一种NoSQL​(not-only sql​,泛指非…

几种不同的方式禁止IP访问网站(PHP、Nginx、Apache设置方法)

1、PHP禁止IP和IP段访问 <?//禁止某个IP$banned_ip array ("127.0.0.1",//"119.6.20.66","192.168.1.4");if ( in_array( getenv("REMOTE_ADDR"), $banned_ip ) ){die ("您的IP禁止访问&#xff01;");}//禁止某个IP段…

中国式报表怎么做?用这款免费可视化工具快速搞定复杂报表

1. 什么是中国式报表&#xff1f; 中国式报表是一种中国独有的复杂报表&#xff0c;有格式复杂、计算复杂、数据来源复杂等特点&#xff0c;并且还有多样化的功能要求&#xff0c;例如图形、联动、回填等。因此许多国外报表工具在制作中国式报表方便表现得有些“水土不服”&am…

UE5.3-基础蓝图类整理一

常用蓝图类整理&#xff1a; 1、获取当前关卡名&#xff1a;Get Current LevelName 2、通过关卡名打开关卡&#xff1a;Open Level(by name) 3、碰撞检测事件&#xff1a;Event ActorBeginOverlap 4、获取当前player&#xff1a;Get Player Pawn 5、判断是否相等&#xff1…

基于OpenCv的快速图片颜色交换,轻松实现图片背景更换

图片颜色更换 图片颜色转换 当我们有2张图片,很喜欢第一张图片的颜色,第2张图片的前景照片,很多时候我们需要PS进行图片的颜色转换,这当然需要我们有强大的PS功底,当然小编这里不是介绍PS的,我们使用代码完全可以代替PS 进行图片的颜色转换 图片颜色转换步骤: 步骤…

中职网络安全B模块Cenots6.8数据库

任务环境说明&#xff1a; ✓ 服务器场景&#xff1a;CentOS6.8&#xff08;开放链接&#xff09; ✓ 用户名&#xff1a;root&#xff1b;密码&#xff1a;123456 进入虚拟机操作系统&#xff1a;CentOS 6.8&#xff0c;登陆数据库&#xff08;用户名&#xff1a;root&#x…

海南云亿商务咨询有限公司抖音电商服务领军者

在当今这个数字化高速发展的时代&#xff0c;抖音电商已经成为了一种不可忽视的新型商业模式。作为行业的佼佼者&#xff0c;海南云亿商务咨询有限公司凭借其专业团队和卓越的服务能力&#xff0c;为众多商家提供了一站式的抖音电商解决方案&#xff0c;助力商家在竞争激烈的市…

【C++项目】从零实现一个在线编译器

前言 身为一名程序员&#xff0c;想必大家都有接触过像leetcode这样的刷题网站&#xff0c;不知你们在刷题的过程中是否思考过一个问题&#xff1a;它们是如何实现在线编译运行的功能。如果你对此感到好奇&#xff0c;那么本文将一步步带你来实现一个简易在线编译器。 项目概…