二进制数的加法步骤解析

article/2025/9/25 0:28:03

文章目录

      • 位运算
      • 二进制数加法步骤
        • 例子
        • 代码演示

二进制的加法需要用到位运算,所以先来复习下位运算。

位运算

运算符号(java)描述
位与&都为1,结果为1,否则为0。
位或|有一个为1或两个位都为1,则结果为1,否则为0。换句话说,只有两个都为0,则结果为0 ,其它为1。
异或^两个位相同,其为0。两个位不同,其为1。
取反~0变为1,1变为0。
左移<<将二进制左移指定位数,右侧补0
右移>>将二进制由移指定位数,右侧超出部分截取丢弃。如a>>b相当于a/2^b。

二进制数加法步骤

  1. 将两二进制数异或,获取无需进位的二进制数
  2. 将两二进制数位与,获取需进位的二进制数
  3. 将2步骤的进位二进制数左移1位,得到进位之后的二进制数
  4. 将3步骤的已进位的二进制数与1步骤的不需进位的二进制数位与,如果位与的结果等于0,即表示无进位需处理了,进入步骤4。如果结果不为0,则表明还有进位需要处理,则继续重复1、2、3、4步骤。
  5. 将1、2步骤的结果进行位或,其所得结果即为加法之后的二进制数。

例子

如,二进制数0100(4)与1110(14)相加得二进制结果10010(18),其步骤如下:
在这里插入图片描述

代码演示

python.

def add(a, b):ncb = a ^ b  # 不需要进位的二进制数部分cb = (a & b) << 1  # 进位的二进制数部分if ncb & cb != 0:  # 如果位与之后的结果还有1,则表示还有需要进位的return add(ncb, cb)  # 递归return ncb | cb  # 进位与不进位的二进制取位或得到结果if __name__ == '__main__':print(add(0, 3))

http://chatgpt.dhexx.cn/article/IQY0C9VY.shtml

相关文章

二进制数及其运算

计算机的底层都是使用二进制数据进行数据流传输的&#xff0c;那么为什么会使用二进制表示计算机呢&#xff1f;什么是二进制数呢&#xff1f;如何使用二进制进行加减乘除&#xff1f;二进制数如何表示负数呢&#xff1f;本文将为你揭晓。 为什么用二进制表示 计算机内部是由I…

二进制数的运算

文章目录 前言一、加法运算规则二、减法运算规则三、乘法运算规则四、除法运算规则五、逻辑或运算规则六、逻辑与运算规则七、逻辑非运算规则八、逻辑异或运算规则 前言 此篇文章仅介绍二进制数的运算&#xff0c;不涉及其他进制的运算 一、加法运算规则 000 011 101 110 &…

什么是二进制数?二进制数是如何表示计算机信息的?

二进制是什么&#xff1f; 想要了解二进制数是如何表示计算机信息的&#xff1f;先要追本溯源&#xff0c; 二进制&#xff08;binary&#xff09;在数学和数字电路中指以2为基数的记数系统&#xff0c;以2为基数代表系统是二进位制的。这一系统中&#xff0c;通常用两个不同的…

二进制

博客引用处&#xff08;以下内容在原有博客基础上进行补充或更改&#xff0c;谢谢这些大牛的博客指导&#xff09;&#xff1a; 二进制 二进制和十进制间小数怎么转换 二进制进位 前言&#xff1a; 二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的…

二进制(bit)整数

计算机以电子电荷集合的形式在内存中保存指令和数据。用数字来表示这些内容就需要系统能够适应开 / 关(on/off)或真 / 假(true/false)的概念。 二进制数(binary number)用 2 个数字作基础,其中每一个二进制数字(称为位,bit)不是 0 就是 1。 位自右向左,从 0 开始顺…

计算机基础(一):二进制详解

二进制 我们都知道&#xff0c;计算机的底层都是使用二进制数据进行数据流传输的&#xff0c;那么为什么会使用二进制表示计算机呢&#xff1f;或者说&#xff0c;什么是二进制数呢&#xff1f;在拓展一步&#xff0c;如何使用二进制进行加减乘除&#xff1f;二进制数如何表示…

图论学习笔记——可达矩阵

设有向图D &#xff08;V,E&#xff09;,顶点集V {v1&#xff0c;v2&#xff0c;&#xff0c;vn}。 定义矩阵 为&#xff08;当vi到vj不可达时&#xff0c;p为0&#xff1b;当vi到vj可达时p为1.&#xff09; 称矩阵P是图D的可达矩阵 一般地&#xff0c;设n阶有向图D的邻接…

传递闭包和可达矩阵的关系?

今天的这篇博客让我沉思了好久~~~ 传递闭包矩阵的定义如下所示&#xff1a; 可达矩阵的定义如下图所示&#xff1a; 通过以上两个图片可以看出这两个定义有所区别&#xff0c;这篇博客所讲解的就是传递闭包和可达矩阵的关系&#xff1f;这是为什么呢&#xff1f;传递闭包定义为…

用java不带权有向图求可达矩阵_ISM算法(邻接矩阵求可达矩阵)Java实现

图如下: package com;public class Main {public static void main(String[] args) {// 邻接矩阵int adjacency[][] { { 0, 0, 0, 0, 0 }, { 0, 0, 1, 1, 0 }, { 1, 0, 0, 1, 0 }, { 0, 0, 1, 0, 1 },{ 1, 0, 0, 0, 0 } };// 可达矩阵int reachability[][] null;System.out.p…

【有限马尔科夫链状态分解+Kosaraju 算法】基于Kosaraju 算法和可达矩阵的有限马尔科夫链状态分解

有限马尔科夫链状态分解Kosaraju 算法 1 实验内容2 理论基础3 题目分析4 按常返性和互通性对状态空间进行分解算法流程4.1 强连通性和强连通分量4.2 基于有向图 Kosaraju 算法的有限马尔科夫链状态分解4.3 算法正确性证明4.4 算法复杂度分析 5 按周期对不可约闭集进行分解6 对例…

R 语言 | 计算可达矩阵

在微博有位朋友问我可达矩阵的计算&#xff0c;于是发了点时间用R语言写出来了。 问题如下&#xff1a; 计算过程&#xff1a; 注意&#xff1a;是矩阵的乘法。 代码如下&#xff1a; A <- matrix(c(0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0),nrow5) A1 …

一种使用Python计算可达矩阵的简单方法

在进行编码前要简单介绍几个知识点&#xff1a;有向图&#xff0c;邻接矩阵&#xff0c;可达矩阵 有向图、邻接矩阵、可达矩阵 有向图 现实中常常会表示从一个地点到另一个地点的路径&#xff0c;这样的带有从起点到终点的路线表示可以用有向图表示。如下图所示&#xff1a;…

系统工程利用python求解可达矩阵

系统工程中利用python求解可达矩阵 在系统工程书中&#xff0c;建立解释结构模型中求解可达矩阵是必不可少的一环故利用python写了一段求解可达矩阵的代码&#xff0c;只需要输入邻接矩阵便可计算得到可达矩阵代码如下&#xff1a; import numpy as npdef change(a): 乘以自身…

通过有向图的可达矩阵判断有向图的连通类型

我们根据有向图的连通情况&#xff0c;可以将图分成四种类型 非连通图弱连通图单向连通图强连通图 我们可以通过邻接矩阵A&#xff0c;计算可达矩阵B&#xff0c;然后经过二值化之后得到可达性矩阵P来判断该图属于以上哪一种。 如果P中元素都为1&#xff0c;说明任意两点之间…

【算法导论】有向图的可达矩阵

有时候&#xff0c;我们关注的不是从一个地点到另一个地点的费用&#xff0c;而是能否从一个顶点到达另一个顶点。因此我们可以假设所有边的权值为单位1&#xff0c;在下面的算法中&#xff0c;我们可以在O(n*n*n)的时间内计算出图中任意两点是否可达&#xff0c;我用可达矩阵来…

图论总复习

《图论及其应用》 主要考试知识点&#xff1a; 第2章&#xff0c;第 3章&#xff0c;第5 章&#xff0c;第 6章&#xff0c;章节占比&#xff1a;20%&#xff0c;25%&#xff0c;30%&#xff0c;25%。 **第2章&#xff1a;**图的定义、度的概念、握手定理、可图画、同构、子…

图的邻接矩阵求图的出度,入度,可达矩阵,判断强连通,弱连通,单向连通(C++,vs2017)

一、介绍概念 1、邻接矩阵 将一个n个节点的图&#xff0c;转化成一个n*n的矩阵G&#xff0c;G[i][j]表示第i个节点到第j个节点的的权重。 对于上图邻接矩阵为&#xff1a; 2、度 度分为入度和出度&#xff1a;某个节点的入度就是可以通过一条边到达这个节点的节点个数&#xff…

【离散数学】图论 第七章(3) 图的矩阵表示(邻接矩阵、可达矩阵、传递闭包求解算法)

本文属于「离散数学」系列文章之一。这一系列着重于离散数学的学习和应用。由于内容随时可能发生更新变动&#xff0c;欢迎关注和收藏离散数学系列文章汇总目录一文以作备忘。此外&#xff0c;在本系列学习文章中&#xff0c;为了透彻理解数学知识&#xff0c;本人参考了诸多博…

硬盘的存储原理和内部架构

首先&#xff0c;让我们看一下硬盘的发展史&#xff1a; 1956年9月13日&#xff0c;IBM的IBM 350 RAMAC(Random Access Method of Accounting and Control)是现代硬盘的雏形&#xff0c;整个硬盘需要50个直径为24英寸表面涂有磁浆的盘片&#xff0c;它相当于两个冰箱的体积&…