Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >二进制中的加减法_二进制数的加减运算

二进制中的加减法_二进制数的加减运算

作者头像
全栈程序员站长
发布于 2022-11-08 10:35:54
发布于 2022-11-08 10:35:54
1.1K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

二进制的加减法

1)二进制加法 (1) Binary Addition)

Since binary numbers consist of only two digits 0 and 1, so their addition is different from decimal addition. Addition of binary numbers can be done following certain rules:

由于二进制数仅由两位数字0和1组成,因此它们的加法与十进制加法不同。 可以按照某些规则添加二进制数

A

B

Sum

Carry

0

0

0

0

0

1

1

0

1

0

1

0

1

1

0

1

一个

携带

0

0

0

0

0

1个

1个

0

1个

0

1个

0

1个

1个

0

1个

The above table contains two bits a and b, their sum and carry.

上表包含两个位a和b,它们的和与进位。

On adding,

在添加时,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    0 + 0 = 0, 	
    0 + 1 = 1,	
    1 + 0 = 1,	
    1 + 1 = 10 (i.e., sum is 0 and carry is 1)

Let’s do some exercise and solution some questions based on binary addition to get more of the topic.

让我们做一些练习,并根据二进制加法解决一些问题,以获取更多的主题。

Example 1: Perform (10)2 + (11)2

范例1:执行(10) 2 +(11) 2

Solution:

解:

Using the rules provided above, sum operation can be performed as:

使用以上提供的规则,求和运算可以按以下方式执行:

Therefore, (10)2 + (11)2 = (101)2

因此, (10) 2 +(11) 2 =(101) 2

Verification:

验证:

We can verify our result by converting the above binary numbers into decimal numbers and then verifying the sum.

我们可以通过将上述二进制数字转换为十进制数字然后验证总和来验证结果。

Here, (10)2 = (2)10, (11)2 = (3)2 and (101)2 = (5)10, thus when we will add 2 and 3 we get sum as 5.

在这里, (10) 2 =(2) 10(11) 2 =(3) 2(101) 2 =(5) 10 ,因此当我们将23相加时,总和为5



Example 2: Perform (1)2 + (1)2 + (1)2 + (1)2

示例2:执行(1) 2 +(1) 2 +(1) 2 +(1) 2

Solution:

解:

Using the rules provided above, sum operation can be performed as:

使用以上提供的规则,求和运算可以按以下方式执行:



Example 3: Perform (110)2 + (111)2 + (101)2

示例3:执行(110) 2 +(111) 2 +(101) 2

Solution:

解:

Using the rules provided above, sum operation can be performed as:

使用以上提供的规则,求和运算可以按以下方式执行:

Verification:

验证:

We can verify our result as (110)2=(6)10, (111)2=(7)10, (101)2= (5)10 and (10010)2= (18)10. So when we will add 6 + 7 + 5 =18, which we are getting as our answer.

我们可以验证结果为(110) 2 =(6) 10(111) 2 =(7) 10(101) 2 =(5) 10(10010) 2 =(18) 10 。 因此,当我们添加6 + 7 + 5 = 18时 ,我们将以此作为答案。

2)二进制减法 (2) Binary Subtraction)

The binary subtraction is performed like decimal subtraction, the rules for binary subtraction are:

二进制减法的执行方式类似于十进制减法,二进制减法的规则为:

A

B

Difference

Borrow

0

0

0

0

0

1

1

1

1

0

1

0

1

1

0

0

一个

区别

0

0

0

0

0

1个

1个

1个

1个

0

1个

0

1个

1个

0

0

Example 1: Subtract (10)2 from (1001)2

实施例1:减法(10)2从(1001)2

Solution:

解:

In column C2, 1 can’t be subtracted from 0 so, we have to borrow 1 from column C3, but C3 also has a 0, so 1 must be borrowed from column C4, the 1 borrowed from column C4 becomes 10 in column C3, now keeping 1 in column C3 bringing the remaining 1 to column C2 which becomes 10 in column C2 thus 10 – 1= 1 in column C2.

在C 2列中,不能从0减去1,因此,我们必须从C 3列中借用1,但是C 3也有0,因此必须从C 4列中借用1,从C 4列中借用1。在列C 3成为如图10所示,现在在列C 3保持1使剩余的1至列C 2,其在列C 2变为10因此10 – 1 = 1在列C 2中 。

In column C3, 1 – 0 = 1

在C 3列中,1 – 0 = 1

In column C4, 1 after providing borrow 1 is reduced to 0.

在C 4列中,提供借位1后的1减少为0。

Therefore, (1001)2 – (10)2 = (111)2

因此, (1001) 2 –(10) 2 =(111) 2



Example 2: Subtract (111.111)2 from (1010.01)2

实施例2:减法(111.111)从2(1010.01)2

Solution:

解:

In Column C0, 1 can’t be subtracted from 0, so we have to borrow 1 from column C1, which becomes 10 in column C0, thus 10 – 1 = 1,

在C 0列中,不能从0中减去1,因此我们必须从C 1列中借用1 ,在C 0列中它变为10,因此10 – 1 = 1,

In column C1, after providing borrow 1 to C0, C1 is reduced to 0. Now 1 can’t be subtracted from so borrow 1 from C2, but it is also 0, so borrow 1 from C3 which is also 0, so borrow 1 from C4, reducing column C4 to 0. Now, this 1 borrowed from column C4 becomes 10 in column C3, keep 1 in the column C3 and bring other 1 to column C2, which makes column C2 as 10 now again bring 1 from C2 to C1, which reduces C2 to 1 and makes C1 as 10.

在C 1列中,向C 0提供借位1之后,C 1减少为0。现在不能从中减去1,因此从C 2借出1,但是它也为0,因此从C 3借出1也是0,所以由C 4借1,减少列C 4至0。现在,这个1从列C 4借变成10在列C 3中,保持1中的列C 3和带来其它1至柱C 2,这使得列C 2为10现在又将1从C 2带到C 1 ,这将C 2减少为1并使C 1为10。

Thus, In Column C1, 10 – 1 = 1

因此,在列C 1中 ,10 – 1 = 1

In Column C2, 1 – 1 = 0

在C 2列中,1 – 1 = 0

In Column C3, 1 – 1 = 0

在C 3列中,1 – 1 = 0

In Column C4, we now have 1 to be subtracted from 0 which is not possible so we will borrow 1 from Column C5, but Column C5 has a 0 so borrow 1 from C6 making C6 to be 0 and bring it to C5 which makes it 10 in C5, keep 1 in C5 and bring the other 1 to C4 which makes C4 as 10 thus

在C 4列中,现在不可能从0中减去1,这是不可能的,因此我们将从C 5列中借入1,但是C 5列具有0,因此从C 6中借入1,从而使C 6为0并将其取为零。到C 5,这使得它在10的C 5,保持1中的C 5和使其他1至C 4,这使得-C 4作为10因此

In column C4, 10 – 1 = 1

在C 4列中,10 – 1 = 1

In column C5, 1 – 1 = 0

在C 5列中,1-1 = 0

In column C6, 0 – 0 = 0

在C 6列中,0 – 0 = 0

Hence, the result is (1010.01)2 – (111.111)2 = (0010.011)2

因此,结果为(1010.01) 2 –(111.111) 2 =(0010.011) 2

翻译自: https://www.includehelp.com/basics/binary-addition-and-subtraction.aspx

二进制的加减法

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月25日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Leetcode 762: 二进制表示中质数个计算置位
比如说(21){10}=(10101){2},则该数字的计算置位为3。问题要求一段区间[left,right]中有质数个计算置位的数量。
千灵域
2022/06/17
6100
LeetCode 1689. 十-二进制数的最少数目(脑筋急转弯)
如果一个十进制数字不含任何前导零,且每一位上的数字不是 0 就是 1 ,那么该数字就是一个 十-二进制数 。 例如,101 和 1100 都是 十-二进制数,而 112 和 3001 不是。
Michael阿明
2021/02/19
3910
从根到叶的二进制数之和
给出一棵二叉树,其上每个结点的值都是 0 或 1 。每一条从根到叶的路径都代表一个从最高有效位开始的二进制数。
利刃大大
2023/04/12
2160
二进制加减法计算法则
一、二进制加法(逢2进1) 举例:100111+11010=100001 1 0 0 1 1 1 1 1 0 1 0 —————— 1 0 0 0 0 0 1 十进制加法是逢十进一,二进制加法是逢二进一。 最低位:1加0得1。 倒数第2位:1加1得2,同时进1。 倒数第3位:1加0得1,再加上进位的1,结果为2。 其他位同理。
全栈程序员站长
2022/09/12
4.4K0
LeetCode 693. 交替位二进制数(位运算)
给定一个正整数,检查他是否为交替位二进制数:换句话说,就是他的二进制数相邻的两个位数永不相等。
Michael阿明
2020/07/13
3720
LeetCode 693. 交替位二进制数(位运算)
leetcode树之从根到叶的二进制数之和
这里采用递归的方法,当node为null时返回0;之后对sum累加当前node.val;若node.left及node.right为null则返回sum,否则递归计算sumNode(node.left, sum)再累加上sumNode(node.right, sum)。
code4it
2020/09/25
4470
leetcode树之从根到叶的二进制数之和
LeetCode 1022. 从根到叶的二进制数之和(递归)
给出一棵二叉树,其上每个结点的值都是 0 或 1 。每一条从根到叶的路径都代表一个从最高有效位开始的二进制数。例如,如果路径为 0 -> 1 -> 1 -> 0 -> 1,那么它表示二进制数 01101,也就是 13 。
Michael阿明
2020/07/13
4680
LeetCode 1022. 从根到叶的二进制数之和(递归)
Leetcode No.67 二进制求和
示例 2: 输入: a = "1010", b = "1011" 输出: "10101"
week
2022/01/07
2020
Archived | 307-15-背包的二进制优化
Farmer John has gone to town to buy some farm supplies. Being a very efficient man, he always pays for his goods in such a way that the smallest number of coins changes hands, i.e., the number of coins he uses to pay plus the number of coins he receives in change is minimized. Help him to determine what this minimum number is.
gyro永不抽风
2021/05/21
4810
二进制数的补码及运算(1)
= {原码符号位不变} + {数值位从右边数第一个1及其右边的0保持不变,左边安位取反}
全栈程序员站长
2022/11/01
7920
LeetCode 1980. 找出不同的二进制字符串
给你一个字符串数组 nums ,该数组由 n 个 互不相同 的二进制字符串组成,且每个字符串长度都是 n 。 请你找出并返回一个长度为 n 且 没有出现 在 nums 中的二进制字符串。 如果存在多种答案,只需返回 任意一个 即可。
Michael阿明
2021/09/06
4160
LeetCode 1689. 十-二进制数的最少数目
如果一个十进制数字不含任何前导零,且每一位上的数字不是 0 就是 1 ,那么该数字就是一个 十-二进制数 。例如,101 和 1100 都是 十-二进制数,而 112 和 3001 不是。
freesan44
2021/09/03
4240
LeetCode 1689. 十-二进制数的最少数目
MYSQL高级篇-----索引优化分析
由于有些mysql不能使用full join,不过可以换种方法表示 A 的独有 + AB 共有 + B的独有 union本身就可以去重 所以可以这样使用
默 语
2024/11/20
5840
MYSQL高级篇-----索引优化分析
二进制乘法除法运算_二进制的补码怎么算
Binary numbers can be multiplied using two methods,
全栈程序员站长
2022/11/10
9900
二进制乘法除法运算_二进制的补码怎么算
小朋友学C语言(18):二进制
一、十进制与二进制 我们日常所用到的计数方式,是十进制(数字用0,1,2,3,4,5,6,7,8,9这十个数字来表示)。 十进制的进位规则是”逢十进一”。 比如零、一、二、三、四、五、六、七、八、九都是用一位数来表示。再进一的话,是十。十无法用1位数来表示,所以要”进一”,用两位数来表示,即10。 19进一是二十,无法以1X来表示,所以得用20来表示。 99进一是一百,无法用9X来表示,所以得用100来表示。 计算机用二进制(数字用0和1来表示)来存储数据。二进制的进位规则是“逢二进一”。 零用0来表
海天一树
2018/04/17
1K0
小朋友学C语言(18):二进制
LeetCode 1290. 二进制链表转整数
给你一个单链表的引用结点 head。 链表中每个结点的值不是 0 就是 1。 已知此链表是一个整数数字的二进制表示形式。
Michael阿明
2020/07/13
5020
算法解密64位加密,进制转换解密shell脚本
#!/bin/bash # 算法解密84位加密,进制转换解密脚本 # 脚本开发:万杨 # 由于企业保密要求,本次算法过程已经经过更改处理 bcrpm=`rpm -qa | grep "^bc" | wc -l` # 定义bcrpm变量:查看已安装包,过滤开头为 bc 并且 wc -l 进行计数 if [ $bcrpm -lt 1 ] # lt 小于:参考:shell if 条件判断文件或目录;字符串
eisc
2021/04/20
1.2K0
算法解密64位加密,进制转换解密shell脚本
C#版 - Leetcode 762. 二进制表示中质数个1置位 - 题解
762.Prime Number of Set Bits in Binary Representation
Enjoy233
2019/03/05
6710
从二进制到HelloWorld
我们都知道任何文件,无论是代码、文本还是音频、图片等等,这些文件最终都会储存为由1和0组成的序列。
用户6948990
2025/04/03
410
从二进制到HelloWorld
二进制数的运算方法
1.二进制数的算术运算 二进制数的算术运算包括:加、减、乘、除四则运算,下面分别予以介绍。
全栈程序员站长
2022/09/07
1.7K0
推荐阅读
相关推荐
Leetcode 762: 二进制表示中质数个计算置位
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验