当前位置: 首页 > news >正文

计算机基础:二进制基础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.xdnf.cn/news/219817.html

相关文章:

  • 如何将二叉树展开为链表?两种Java实现方法对比
  • FPGA 38 ,FPGA 网络通信协议栈基础,ARP 协议深度解析与模块划分( ARP与以太网帧,以及ARP模块常用文件 )
  • 细说STM32单片机FreeRTOS互斥量及其编程实例
  • C# 导入EXCEL 报错外部表不是预期的格式错误指南方案
  • C++中的vector和list有什么区别?
  • Launcher3-实现家长管控-儿童模式-老人模式
  • 机器学习第四篇 线性回归-最小二乘法
  • 案例分享|20倍提效!水力设备电磁仿真的云端实战
  • DDoS攻击真的无解吗?
  • DeepClaude开源程序可以实现代码生成、创作诗句以及内容创作等功能
  • 详解大语言模型生态系统概念:lama,llama.cpp,HuggingFace 模型 ,GGUF,MLX,lm-studio,ollama这都是什么?
  • 【LaTex】3.8流程图绘制
  • Transformer数学推导——Q34 推导位置插值(Position Interpolation)在长文本外推中的误差上界
  • (02)Redis 的订阅发布Pub/Sub
  • Ubuntu上搭建python环境并安装第三方库
  • C语言教程(二十四):C 语言中递归的详解
  • cuda学习3: 全局线程id计算
  • 大语言模型能否替代心理治疗师的深度拓展研究:fou
  • 两数之和II-输入有序数组(中等)
  • 洛谷题解 | CF1979C Earning on Bets
  • DNA复制过程3D动画教学工具
  • 稳定性 复杂度
  • 浅析localhost、127.0.0.1 和 0.0.0.0的区别
  • 【RocketMq延迟消息操作流程】
  • 鸟笼效应——AI与思维模型【84】
  • Canvas基础篇:概述
  • DeepSeek 本地化部署与 WebUI 配置的方法
  • Fiddler抓取APP端,HTTPS报错全解析及解决方案(一篇解决常见问题)
  • 在Ubuntu中安装python
  • 02_高并发系统问题及解决方案