对二进制减法的理解

news/2024/9/23 10:13:40/文章来源:https://www.cnblogs.com/dx5800/p/18422456

以下内容是写在通过NandGame网站学习二进制运算的,但是没想到写了这么多,想着也可以单独发出来

写到这里突然想到最近在《编码:隐匿在计算机软硬件背后的语言》这本书看到二进制减法的运算,作者一开始不是直接讲减数要转换成补码再计算,而是讲了十进制减法为了不使用借位如何方便计算。比如61-19,由于1不够减需要向6借以一位,那么有没有什么办法不借位计算呢?可以利用十进制的补数实现,可以通过99-19=80,61+80=141,141-100+1=42,三个式子简化一下就是61+(99-19)-100+1,这个式子和61-19的结果是一样的,因为+100和-100其实就是0,这样子主要是不用借位,这样子计算对于人类来说太复杂了,毕竟简单的借位对人类来说很简单,为什么要提十进制的补数在减法的应用,因为二进制减法就是用了这个逻辑来实现的,减数为什么要取反?因为二进制的1111 1111-0001 0011=1110 1100,这里用八个1去减就相当于十进制的99去减,这样子不用借位同时刚好是减数的反码,0001 0011的反码就是1110 1100,接下来是被减数加上减数的反码,0011 1101+1110 1100=1 0010 1001,接着再加一,1 0010 1001+1=1 0010 1010,前面加了1111 1111 和1,接下来要减掉,1 0010 1010-1 000 000 =0010 1010,取得了二进制的补码。这样子在二进制的计算减法中也没用使用借位。文字和式子放在一起可能不好理解,单独把式子提取出来。

61(0011 1101)-19(0001 0011)补数的减法
十进制:
99-19=80
61+80=141
141-100+1=42
把上面三个合成一个式子:
61+(99-19)-100+1=42
二进制:
1111 1111-0001 0011=1110 1100(惊讶的发现0001 0011对每一位取反就是1110 1100)
0011 1101+1110 1100=1 0010 1001
1 0010 1001+1=1 0010 1010
1 0010 1010-1 000 000 =0010 1010

二进制的就不合成一个式子了,因为一合成那么多0和1更不好理解,整体来讲就是二进制的减法就是用了补数的逻辑实现的,这下就理解了二进制减数为什么要取反以及为什么要再加一,经过这两个操作被减数加减数得出的是原本两个数相减的结果。

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

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

相关文章

网站打不开数据库错误等常见问题解决方法

当遇到网站打不开且出现数据库错误等问题时,可以采取以下步骤进行排查和解决:检查默认页面:如果网站显示“主机开设成功!”或者“恭喜,lanmp安装成功!”这样的信息,这可能是服务器默认放置的页面。检查wwwroot目录下是否有自己的程序文件,如果没有,上传正确的文件,并…

网站数据库错误的原因通常包括配置错误、编码错误、硬件故障、网络问题、数据损坏、权限设置不当、软件更新不兼容、SQL注入攻击等

网站数据库错误可能由多种因素引起,主要包括以下几点:配置错误:数据库或应用程序的配置不当可能导致连接失败或其他运行时错误。 编码错误:程序中的逻辑错误或语法错误也可能导致数据库操作失败。 硬件故障:服务器硬件出现问题,如硬盘损坏、内存故障等,会影响数据库的正…

网站数据库为什么错误呢

当网站数据库出现错误时,可能有多种原因。以下是一些常见的原因及解决方法: 常见原因及解决方法内存限制问题症状:内存耗尽,如“Allowed memory size of 134217728 bytes exhausted”。 解决方法:修改 php.ini 文件中的 memory_limit 配置项。 在 PHP 脚本中使用 ini_set …

为什么数据库查询总是报错

数据库查询总是报错可能有以下几个常见原因:SQL语句错误:语法错误:SQL语句编写不正确,比如缺少分号、括号不匹配等。 表或列不存在:查询中引用了不存在的表名或字段名。 查询条件错误:WHERE子句中的条件表达式错误,比如比较运算符使用不当、值类型不匹配等。数据库连接问…

mac输入法 cpu占用,解决mac使用输入法出现卡顿延迟

1、介绍 网上有各种方法,例如有touchbar的macbook关闭输入建议;定时重启“简体中文输入法”进程;关闭“显示器具有单独的空间” 这些方法网上都能看到,有些人说能解决,有些人说还是卡,我试过了问题依然存在。 网上还有一种思路就是换第三方输入法,一般推荐的都是搜狗输入…

中电金信 :基于开放架构的私有云建设实践

​ 01开放架构私有云诞生背景随着国产化创新建设的深化,产业侧行业软件持续进行云原生改造,金融机构拥抱云和容器技术,实现数智化转型已是大势所趋。近年,云原生技术以及架构发展速度更是惊人,私有云开始有了新架构、有了能解决中小金融机构私有云建设中问题和需求的方法。…

使用Docker或WSL2加速搭建GIS开发环境

Accelerate Your Development Environment with Docker & WSL2 ​​ Welcome to accelerate your development environment with WSL to and darker. Im Kris Daugherty and Im here today with my colleague, Andrew breeding. Were from the GIS solutions and developme…

Text to Image AI Generator All In One

Text to Image AI Generator All In One 文生图 AIText to Image AI Generator All In One文生图 AIdemos prompt: A cat sitting in a watermelon field looking at a Mac Book computerhttps://deepai.org/machine-learning-model/cute-creature-generatorhttps://www.canva.…

函数支持,Fast Request 2024.1.7 发布

Fast Request是一个类似于 Postman 的 IDEA 插件。它是一个强大的 restful api 工具包插件,可以根据已有的方法帮助您快速、自动生成 url 和 params。 Restful Fast Request = API 调试工具 + API 管理工具 + API 搜索工具。 它有一个漂亮的界面来完成请求、检查服务器响应、存…

深度解析APS系统异常预警处理:从识别到解决的全流程策略

订单发生变更 当企业接收到产品加工订单发生变更的通知时,立即启动快速响应机制。包括指派专人负责跟进此事,并确保该信息能够迅速传递到所有相关部门和人员。同时,直接访问APS(高级计划与排程)系统,准备对受影响的订单进行详细审查。 1.确认变更 在APS系统中,详细检查发…

使用 fabric.js 开发移动端 H5 图片编辑器

移动端 H5 图片图片编辑编辑器开发实践细节,包括自定义字体、模板切换、特效字体、文字排版等功能,手把手教你开发图片编辑器。大家好,我是开源图片编辑器的 https://github.com/ikuaitu/vue-fabric-editor 的作者,它是一款基于 PC 版本的开源图片编辑器。 最近很多开发者咨…

易优eyoucms友情链接怎么添加?

在易优 CMS (EyouCMS) 中添加友情链接的过程涉及后台设置和前端模板的调整。下面是详细的步骤: 后台添加友情链接登录后台:登录到易优 CMS 的后台管理系统。进入SEO设置:在后台菜单中找到“SEO设置”或类似的选项。进入友情链接管理:在SEO设置中找到“友情链接”或类似命名…