计算机基础:二进制基础14,二进制加法

专栏导航

本节文章分别属于《Win32 学习笔记》和《MFC 学习笔记》两个专栏,故划分为两个专栏导航。读者可以自行选择前往哪个专栏。

(一)WIn32 专栏导航

上一篇:计算机基础:二进制基础13,十六进制与二进制的相互转换

回到目录

下一篇:无

(二)MFC 专栏导航

上一篇:计算机基础:二进制基础13,十六进制与二进制的相互转换

回到目录

下一篇:无

本节前言

本来呢,数制知识,我已经是写完了的。但是呢,后来发现,还需要补充一点东西。那就是,二进制,八进制与十六进制的加减法,我需要来提一提。

本节呢,我们来讲解二进制加法。

一.    两个数的加法

假定,我们计算的,是两个三位的二进制数加法。

当初,我们学习十进制的加法的时候,我们都是用列竖式的方法来计算的。个位与个位相加,是为与十位相加,百位与百位相加,等等。然后呢,还会涉及进位的问题。个位相加,如果得数大于或等于10 的时候,还要向十位进 1 。十位相加的时候,如果得数大于或等于10 的时候,还要向百位进 1 。

二进制加法,与此类似。

对于两个三位二进制数的加法,它是说,两个数的位0 与位0 相加,位1 与位1 相加,位2 与位2 相加。每一位在计算出了本数位的得数的时候,如果大于或等于2,还要向高位进1 。位0 与位0相加,如果得数大于或等于2,则要向 位1 进1 。位1 与位1 相加,如果得数大于或等于2,则要向 位2 进1 。位2 与位2 相加,如果得数大于或等于2,则要向 位3 进1 。

(一)位0 的加法

对于位0 的加法,它所涉及的数,是两个,分别为加数1 和加数2 。所形成的加法的类型,一共是三种。

第一种,两个加数都为0 。这种情况下,得数为0 。在列竖式的时候,当前位,也就是位0,它的结果为0。向高位的进位,也就是向位1 的进位,为 0 。

第二种,两个加数,一个是0,另一个是1,这种情况下,得数为1 。在列竖式的时候,当前位,也就是位0,它的的结果为1 。向高位的进位,也就是向位1 的进位,为 0 。

第三种,两个加数都是1 。在这种情况下,得数为 十进制的 2 。在列竖式的时候,当前位,也就是位0,它的结果为 0 。向高位的进位,也就是向位1 的进位,为 1 。

(二)其余位的加法

如果参与加法运算的两个二进制数,都是三位的,那么,其余位指的就是位1 和位 2 。

如果参与运算的两个二进制数,都是四位的,那么,其余位指的就是位1,位2,位3 。

如果参与运算的两个二进制数,都是八位的,那么,其余位指的就是位1,位2,位3,直到位7 。

如果参与运算的两个二进制数,都是 N 位的,那么,其余位指的就是位1,位2,位3,直到位 (N-1)。总之,是除了位0 之外的所有位。

在这里,其余位的加法,它主要是涉及了三个数,其中的两个数是两个加数,另外的一个数就是来自低位的进位。低位的进位,要么是0,要么是1 。

由于是二进制数的加法,所以,其余位的加法里面,所涉及的三个数的加法,都是说,要么是0,要么是1 。在这三个数的加法中,包含了四种情况。

第一种情况,三个数都是 0 。这种情况下,当前位的结果为 0,向高位的进位也是 0 。

第二种情况,三个数都是 1 。在这种情况下,当前位的结果为 1,向高位的进位也是 1 。

第三种情况,三个数里面,有两个0,一个1 。在这种情况下,当前位的结果为 1,向高位的进位为 0 。

第四种情况,三个数里面,有两个1,一个0 。在这种情况下,当前位的结果为 0,向高位的进位为 1 。

到了这里,对于二进制数的加法运算,我认为,讲的就差不多了。接下来,我们来看几个例题。

二.    例题

例题1

计算 0B 101 + 0B 011

两个数的位0 都是1,根据第一分节的(一)分节的讲解,位0 加法的两个数都是 1 的情况下,则计算结果为,位0 的结果为0,向位1 的进位为1 。

我们来看位1,位1 的两个数,一个是0,一个是1,来自位0 的进位为 1 。所以,两个加数与低位进位所组成的三个数,包含了两个1 和一个 0 ,计算结果为,位1 的结果为0,向位2 的进位为 1 。

我们来看位2 。位2 的两个数,一个是0,一个是1,来自位1 的进位为 1 。所以呢,两个加数与低位进位所组成的三个数,包含了两个1 和一个 0 ,计算结果为,位2 的结果为0,向位3 的进位为 1 。

两个数的最高位为位2,不包含位3 。然而,在计算的时候,向位3 进位了,因此,若是将位3 算在计算结果里面,而不是舍掉的话,那么,计算的结果为,位3 为1,位2 为 0,位1 为0,位0 为 0 。最终的结果,为 0B 1000 。

例题2

计算 0B 1011 + 0B 1010

两个数的位0,一个是0,一个是1,计算结果为,位0 的结果为1,向位1 的进位为 0 。

两个数的位1,均为1,来自位0 的进位为 0 。所以,两个加数与低位进位所组成的三个数,包含了两个1 和一个0 。计算结果为,位1 的结果为0,向位 2 的进位为 1 。

两个数的位2,均为0,来自位1 的进位为 1 。所以,两个加数与低位进位所组成的三个数,包含了两个0 和一个1 。计算结果为,位2 的结果为 1,向位 3 的进位为 0 。

两个数的位3,均为1,来自位2 的进位为 0 。所以,两个加数与低位进位所组成的三个数,包含了两个1 和一个0 。计算结果为,位3 的结果为0,向位 4 的进位为 1 。

两个数的最高位为位3,不包含位4 。然而,在计算的时候,向位4 进位了,因此,若是将位4 算在计算结果里面,而不是舍掉的话,那么,计算的结果为,位4 为1,位3 为 0,位2 为 1,位1 为0,位0 为 1 。最终的结果,为 0B 10101 。

例题3

计算 0B 1110 + 0B 1101

两个数的位0,一个是0,一个是1,计算结果为,位0 的结果为1,向位1 的进位为 0 。

两个数的位1,一个是0,一个是1,来自位0 的进位为 0 。所以,两个加数与低位进位所组成的三个数,包含了两个0 和一个1 。计算结果为,位1 的结果为1,向位 2 的进位为 0 。

两个数的位2,均为1,来自位1 的进位为 0 。所以,两个加数与低位进位所组成的三个数,包含了两个1 和一个0 。计算结果为,位2 的结果为 0,向位 3 的进位为 1 。

两个数的位3,均为1,来自位2 的进位为 1 。所以,两个加数与低位进位所组成的三个数,包含了三个1 。计算结果为,位3 的结果为1,向位 4 的进位为 1 。

两个数的最高位为位3,不包含位4 。然而,在计算的时候,向位4 进位了,因此,若是将位4 算在计算结果里面,而不是舍掉的话,那么,计算的结果为,位4 为1,位3 为 1,位2 为 0,位1 为1,位0 为 1 。最终的结果,为 0B 11011 。

结束语

到了这里,二进制的加法,我就算是讲完了。

讲的时候,还是觉得有点儿不好讲。

希望大家看懂了我在本节所讲的东西。

 专栏导航

本节文章分别属于《Win32 学习笔记》和《MFC 学习笔记》两个专栏,故划分为两个专栏导航。读者可以自行选择前往哪个专栏。

(一)WIn32 专栏导航

上一篇:计算机基础:二进制基础13,十六进制与二进制的相互转换

回到目录

下一篇:无

(二)MFC 专栏导航

上一篇:计算机基础:二进制基础13,十六进制与二进制的相互转换

回到目录

下一篇:无

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

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

相关文章

可视化图解算法: 判断是不是二叉搜索树(验证二叉搜索树)

1. 题目 描述 给定一个二叉树根节点,请你判断这棵树是不是二叉搜索树。 二叉搜索树满足每个节点的左子树上的所有节点的值均严格小于当前节点的值;并且右子树上的所有节点的值均严格大于当前节点的值。 数据范围:节点数量满足 1≤n≤10^4…

Markdown转WPS office工具pandoc实践笔记

随着DeepSeek、文心一言、讯飞星火等AI工具快速发展,其输出网页内容拷贝到WPS Office过程中,文档编排规整的格式很难快速复制。 注:WPS Office不支持Markdown格式,无法识别式样。 在这里推荐个免费开源工具Pandoc,实现…

python的turtle库实现四叶草

实现代码: import turtle turtle.pencolor(‘green’) turtle.fillcolor(‘green’) turtle.begin_fill() turtle.circle(100,90) turtle.left(90) turtle.circle(100,90) turtle.right(180) turtle.circle(100, 90) turtle.left(90) turtle.circle(100,90) tu…

北重数控滑台加工厂家:汽车零部件试验铁地板-安全性能的测试方法

汽车零部件的安全性能测试是非常重要的,其中铁地板测试是其中的一种常见测试方法之一。铁地板测试主要用于评估汽车零部件在发生碰撞或事故时的安全性能,以确保零部件在各种情况下都能提供有效的保护和安全性能。 铁地板测试通常包括以下步骤和方法&…

Linux0.11系统调用:预备知识

系统调用 预备知识 目标:了解系统调用的流程,在Linux 0.11上添加两个系统调用,并编写两个简单的应用程序测试它们。 对应章节:同济大学赵炯博士的《Linux内核0.11完全注释(修正版V3.0)》的第5.5节 下面就针…

如何防止 ES 被 Linux OOM Killer 杀掉

当 Linux 系统内存不足时,内核会找出一个进程 kill 掉它释放内存,旨在保障整个系统不至于崩溃。如果 ES 按照最佳实践去实施部署,会保留一半的内存,不至于发生此类事情。但事情总有例外,有的朋友可能 ES 和其他的程序部…

swagger2升级至openapi3的利器--swagger2openapi

背景: 因为项目需要升级JDK,涉及到swagger2升级至openapi3的情况。由于swagger 2和openapi 3的语法差距太大,需要对yaml进行升级。无奈单个yaml文件的内容太大,高至4万多行,手动进行语法的转换肯定是不可能了&#xff…

在yolo中Ultralytics是什么意思呢?超越分析的智能

在YOLO(You Only Look Once)目标检测框架中,Ultralytics 是一家专注于计算机视觉和机器学习技术的公司,同时也是YOLO系列模型(如YOLOv5、YOLOv8等)的官方开发和维护团队。以下是关键点解析: 1. …

【阿里云大模型高级工程师ACP习题集】2.7 通过微调增强模型能力 (上篇)(⭐️⭐️⭐️ 重点章节!!!)

习题集: 【单选题】在大模型微调中,与提示工程和RAG相比,微调的独特优势在于( ) A. 无需外部工具即可提升模型表现 B. 能让模型学习特定领域知识,提升底层能力 C. 可以更高效地检索知识 D. 能直接提升模型的知识边界,无需训练 【多选题】以下关于机器学习和传统编程的说…

CuML + Cudf (RAPIDS) 加速python数据分析脚本

如果有人在用Nvidia RAPIDS加速pandas和sklearn等库,请看我这个小示例,可以节省你大量时间。 1. 创建环境 请使用uv,而非conda/mamba。 # install uv if not yetcurl -LsSf https://astral.sh/uv/install.sh | shuv init data_gpucd data_g…

2-SAT之完美塔防

小N最近喜欢玩一款塔防游戏。 题目描述 这款游戏的棋盘是一个 nm 的网格,每个格子上会有以下类型物件: A 型炮台:会向上下两个方向同时发射激光,符号为 |;B 型炮台:会向左右两个方向同时发射激光,符号为…

【android bluetooth 案例分析 03】【PTS 测试 】【PBAP/PCE/SSM/BV-02-C】

1. 测试介绍 PBAP/PCE/SSM/BV-02-C [PCE Closes a PBAP Session] 1. Test Purpose Verify that the PCE can terminate a PBAP session. 2. Initial Condition IUT: The IUT is engaged in a PBAP session with the Lower Tester.Lower Tester: The Lower Tester is engag…

ArcGIS:开启洪水灾害普查、评估与制图新征程

技术点目录 一、洪水普查技术规范解读二、ArcGIS介绍及数据管理三、空间数据的转换与处理四、洪水淹没专题地图制作五、矢量数据的采集与处理六、栅格数据的下载与处理七、ArcGIS水文分析八、ArcGIS洪水分析九、ArcGIS淹没分析了解更多 ———————————————————…

【系统参数合法性校验】spring-boot-starter-validation

JSR303校验 统一校验的需求 前端请求后端接口传输参数,是在controller中校验还是在Service中校验? 答案是都需要校验,只是分工不同。 Contoller中校验请求参数的合法性,包括:必填项校验,数据格式校验&…

[零基础]内网ubuntu映射到云服务器上,http访问(frp内网穿透)

阿里云服务器,高校教师可以半价, frp下载地址:https://github.com/fatedier/frp/releases,选amd64, 云服务器开放端口 选择网络与安全–>安全组->管理规则 配置开放端口,7000为支持frp开放的端口&…

第十六届蓝桥杯 2025 C/C++组 破解信息

目录 题目: 题目描述: 题目链接: 思路: 思路详解: 代码: 代码详解: 题目: 题目描述: 题目链接: P12344 [蓝桥杯 2025 省 B/Python B 第二场] 破解信息…

OpenAI Embedding 和密集检索(如 BERT/DPR)进行语义相似度搜索有什么区别和联系

OpenAI Embedding 和密集检索(如 BERT/DPR)其实是“同一种思想的不同实现”,它们都属于Dense Retrieval(密集向量检索),只不过使用的模型、部署方式和调用方式不同。 🧠 首先搞清楚:…

Linux电源管理(3)_关机和重启的过程

原文:Linux电源管理(3)_Generic PM之重新启动过程 1.前言 在使用计算机的过程中,关机和重启是最先学会的两个操作。同样,这两个操作在Linux中也存在,可以关机和重启。这就是这里要描述的对象。在Linux Ke…

C# 继承详解

继承是面向对象程序设计(OOP)中的核心概念之一,它极大地增强了代码的重用性、扩展性和维护性。本篇文章将详细讲解C#中的继承机制,包括基础概念、语法特法、多重继承(通过接口实现)、继承的规则和实际应用示…

SQLAlchemy 2.x 异步查询方法比较

SQLAlchemy 2.x 异步查询中常用的 结果处理方法速查表,包含方法说明、使用场景、返回类型及典型用途。 SQLAlchemy 查询结果处理方法速查表(适用于 AsyncSession) 方法 说明 返回类型 示例 SQL 示例输出 scalars().all() 获取单列所有…