计算机底层的加法运算

从半加器到BCD码:用Logisim图解计算机加法运算的底层实现 本文通过Logisim工具详细图解了计算机加法运算的底层实现,从半加器、全加器到行波进位加法器,最终实现BCD码加法器。文章结合数字逻辑原理,提供清晰的电路设计步骤和代码示例,帮助读者深入理解计算机硬件加法运算的核心机制。 阅读详情

基础

在正式开始前,我们要了解基础知识(知道的可以跳过)。
这里只出示我们后面要用的知识。

位与

位与运算符是单个与符号。如果两个位都是1,结果为1,否则结果0。

位异或

如果两个运算位相同,则结果为0,否则为1。

简单模式

举例:
5 + 6
5转化成二进制为0000 0101
6转化成二进制为0000 0110

第一步

0000 0101
0000 0110
——————
0000 0011
进行位异或运算。

第二步

0000 0101
0000 0110
——————
0000 0100
进行位与运算。这个运算用于检测是否要进位。
结果不为0,需要进位。

第三步

0000 0100 -> 0000 1000
对1进行左进位。

第四步

0000 0011
0000 1000
——————
0000 1011
对异或结果及处理后的与运算结果进行异或运算。类似第一步。

第五步

0000 0011
0000 1000
——————
0000 0000
对异或结果及处理后的与运算结果进行与运算。用于检测是否有进位。
类似第二步。结果为0,不需要进位。

答案

第四步的结果:0000 1011,即为11。

困难模式

举例:
51 + 69
51转化成二进制为0011 0011
69转化成二进制为0100 0101

第一步

0011 0011
0100 0101
——————
0111 0110
进行位异或运算。

第二步

0011 0011
0100 0101
——————
0000 0001
进行位与运算。结果不为0,需要进位。

第三步

0000 0001 -> 0000 0010
对1进行左进位。

第四步

0111 0110
0000 0010
——————
0111 0100
对异或结果及处理后的与运算结果进行异或运算。

第五步

0111 0110
0000 0010
——————
0000 0010
对异或结果及与运算结果进行与运算。用于检测是否有进位。
类似第二步。结果不为0,需要进位。

第六步

0000 0010 -> 0000 0100
对1进行左进位。类似第三步。

第七步

0111 0100
0000 0100
——————
0111 0000
对异或结果及处理后的与运算结果进行异或运算。类似第四步。

第八步

0111 0100
0000 0100
——————
0000 0100
对异或结果及与运算结果进行与运算。用于检测是否有进位。
类似第五步。结果不为0,需要进位。

看到这里,有些人的心态就崩了:嘈!这是什么东西,这么麻烦,到现在都还有进位!!!
列位,没事,安抚一下情绪,继续吧!

第九步

0000 0100 -> 0000 1000
对1进行左进位。类似第六步。

第十步

0111 0000
0000 1000
——————
0111 1000
对异或结果及处理后的与运算结果进行异或运算。类似第七步。

第十一步

0111 0000
0000 1000
——————
0000 0000
对异或结果及与运算结果进行与运算。用于检测是否有进位。
类似第五步。结果为0,不需要进位。

啊——终于结束了,上答案吧。

答案

第四步的结果:0111 1000,即为120。

从半加器到BCD码加法器:用Logisim图解计算机运算的底层逻辑 本文通过Logisim工具详细图解了从半加器到BCD码加法器的计算机运算底层逻辑。从基础的半加器设计开始,逐步构建全加器、四位行波进位加法器,最终实现BCD码加法器,揭示了二进制与十进制运算的转换原理。文章特别适合数字逻辑和加法器设计的学习者,提供了清晰的Logisim实现步骤和电路连接示意图。 阅读详情

相关推荐

深入理解计算机底层为什么采用补码运算【如何理解二进制计算高位溢出】

在计算机底层运算设计的过程中,是根据现实生活中的数学运算做出的映射。比如数学中的8-3=8+(-3),那么这样一来减法运算就变成了加法运算(你这时可能会问,我脑子直接计算8-3=5了,何必再转换位成加法运算多此一举,只能说你日常形成习惯了吧!因为对8-3做分解就只有8和-3这两部分,所以在数学中就是8和-3做相加),因此计算机底层设计模拟数学就需要负数,这个负数就可以使用反码进行充当–》本质上是为了将减法运算转换为加法运算。补码是为了解决数字“0”在计算机中非唯一编码的问题。为什么会这样,往下看! C.

Kevinnsm的博客 2511

计算机如何做加法?

半加器与全加器 门电路是计算机硬件层面最基础的设计单元,计算机要想实现加法运算,也要利用这些门电路。 我们在做十进制的加法时,是逢十进一,同样的,在二进制的加法中,就是逢二进一。从下表中可以看出,两个 1 bit 位的二进制数相加的和等于这两个数做「异或」操作的结果,而产生的进位则等于这两个数做「与」操作的结果。 根据上述特点,可以很容易设计出下面这种电路,实现两个 1 bit 位的二进制数的加法。我们将这种电路称之为半加器。 为什么叫半加器呢?因为这个电路只能计算两个 1 bit 位的二进制数的加法

supermouse的博客 8860

C++中const和指针*的组合问题

今天在复习> 章节7.3的时候想到以前做的一个题,const和指针运算符*的若干种组合的合法性和意义问题,有点混淆,所以写了一个测试代码来验证一下,简单明了,一目了然。如果有什么遗漏的话欢迎指出。 首先是在Ubuntu14.04.1下用gcc 4.8.4编译运行的结果,编译器报错信息都附加在对应语句后面的注释里 /* * Note : Test for the combinations of

theColdOne的专栏 1081

计算机加法的运算规则,计算机眼中的加法运算

在此之前,必须了解几个电器元件,如下分别为:与门(即为一个串联电路)----或门(并联)----与非门(串联后面加一个反相器,使输出0变1,1变0)----计算机是怎样运行加法运算的?都知道计算机是二进制码运算的,二进制的计算公式是:0+0=00+1=11+0=11+1=10---->相当于01+01=10联想到电路里面,对于一个电路(如上图),A,B为输入点,假设有电流计作0,无电流计作1...

weixin_31864641的博客 2402

一种基于因果干预的少样本学习的故障诊断模型

本文提出CIRNet,一种融合元学习与因果干预的少样本故障诊断框架。针对传统方法易学习伪相关特征的问题,CIRNet通过构建结构因果模型,采用类级和特征级双调整策略消除先验知识干扰。实验在多个轴承/齿轮数据集上验证其有效性,在跨组件任务中准确率最高达93.41%,特征可视化显示更好的类可分性。相比现有方法,CIRNet显著提升了模型泛化能力和可解释性。

hasakie的博客 956

【asrpro语音模块+语音控制小风扇】

智能语音控制小风扇,使用ASRPRO语音模块只要一句话就能设置小风扇不同挡位的风力。图形化编程简单有效的控制输出PWM的占空比。

qq_57234300的博客 1万+

计算机都是加法,计算机底层是如何计算加法的?

众所周知在计算机中,所有的数据都是通过电信号表示的,自然加法计算也是通过电信号来进行表达过程和结果的,高电平表示1低电平表示0,也就是二进制数,如果我们要计算11+21=?,换算为二进制数即1011+10101=?为什么使用二进制已知电信号是通过二极管控制电流输出表示,计算机通过控制二极管的输出电流大小对应不同的状态值,早期的计算器出现了对应三种状态、五种状态的电路,也就是三进制计算机,五进制计算...

weixin_42389766的博客 1665

数据中心机房建设标准及依据

深刻理解、尊重并恪守这些依据,是我们以科学、经济、可靠的方式,为蓬勃发展的数字经济筑牢基石的唯一路径。让我们共同努力,以标准为依据,以匠心为精神,建造更多世界一流的高效能、高可用、高智能的绿色数据中心,共同赋能数字中国的宏伟事业,支撑中华民族在数字时代的伟大复兴征程中稳步前行!今天我将力图以宏大的视角和深入的剖析,系统性地阐述数据中心机房建设所应遵循的多层次、多维度的标准依据,揭示这些依据背后的深层逻辑与时代使命,并探讨其如何共同作用于一座世界级数据中心的诞生。,以支持万兆乃至更高速率的传输。

qq_39980997的博客 1139

计算机底层加法运算的逻辑实现

以8为二进制数为例实现0000 0100(4) + 0000 0101(5) 注意:二进制为反码,这里都用正数举例 计算机实现的方法 1、求异或 0000 0100 0000 0101 ------------------ 0000 0001 2、再对这两个数求与运算(运算结果不为0,则判断发生了进位,为0则没有进位) 0000 0100 0000 0101 ------------------ 0000 0100 3、如果与运算的结果不为0,则将与运...

Crush777的博客 1539

centos7 python3.12.1 报错 No module named _ssl,坑我几个小时

网上的教程很多,但几乎是无效的,跟着我这教程,可以完美解决。

Amio_的博客 1万+

【AgentScope 2.0】01-不搭 demo,直接解剖一个生产级 Agent 平台:loser-agent 全链路地图

本文介绍生产级Agent平台loser-agent的完整请求旅程,从用户发消息到返回结果共七站:入口鉴权、灰度路由、Agent装配、模型路由、工具执行、持久化与流式响应。课程以真实源码为线索,深入剖析每一步实现逻辑,涵盖灰度发布、权限控制、HITL审批、多模态处理、状态持久化等核心能力。强调框架仅负责Agent运行时语义,平台自建管理请求生命周期中所有非框架部分,适合Java后端开发者系统掌握Agent工程化落地。

loser.with.m的博客 725

二进制底层加减法的实现原理

计算机底层存储的基本单位为bit 也就是0与1,数字的表示也是以一串二进制来表示。那么如何通过一连串的二进制来完成计算的呢? 大体分为5部分: 1.求异或^ 首先对这俩数求异或操作求值;(啥是异或,俩数的对应位做比较,如果不相等,则结果为1) 0000 0001 1111 1101 ---------^ 1111 1100 求出该值之后记录下来,后边会用到!! 2.求与结果& 紧接着对这俩数进行与操作(对应位的俩数都为1则结果为1,否则都为0),如果求出的与结果为0,则..

qq_34357351的博客 2028

Android15车载系统开机冷启动流程源码解析

本文主要介绍Android15车机系统开机冷启动的流程,暂不包含bootloader,仅从kernel开始直至Launcher首页展示。

jidapenglin28的专栏 253

探秘计算机底层:加法运算的实现原理

在计算机的世界里,底层只认识二进制数据,也就是 0 和 1。无论是文字、数字还是字符,都得转换成二进制,计算机才能处理。而位运算,作为最贴近计算机真实运算的操作,不仅能让计算机高效完成基础运算,还能巧妙解决复杂任务。今天,咱们就先来揭开基础运算中加法的神秘面纱,看看计算机到底是怎么进行加法运算的。

qq_73376107的博客 832

构建栅格地图matlab代码

1 使用MATLAB实现地图栅格化 效果图如下所示 图1 ...

qq_59747472的博客 4518

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

从门电路到加法器:计算机算术运算的底层逻辑之旅

本文深入解析计算机算术运算的底层逻辑,从基础门电路出发,逐步构建半加器和全加器,并探讨如何组合成全功能的加法器。通过Verilog代码示例和真值表分析,揭示了二进制加法的实现原理,为理解计算机核心运算机制提供清晰路径。

soda5的博客 1046

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

从半加器到BCD码:用Logisim图解计算机底层加法运算的完整链路

本文通过Logisim工具详细图解了从半加器到BCD码的计算机底层加法运算完整链路。从数字逻辑基础出发,逐步构建半加器、全加器、4位行波进位加法器,最终实现BCD码加法器设计,帮助读者深入理解计算机组成原理中的核心运算机制。

weixin_30475039的博客 490

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

重学计算机基础006:扒开加法器的底层逻辑——计算机运算的“核心引擎”

摘要:本文深入解析计算机加法器的底层实现原理。加法器作为ALU的核心组件,通过逻辑门(与门、或门、非门等)组合实现二进制运算。逻辑门本质是晶体管的串联/并联,如非门用2个MOS管实现信号反转,与门用4个晶体管实现"串联开关"逻辑。半加器处理本位相加,全加器则能处理进位,多位加法器通过串联全加器实现任意位数运算。文章用"水管开关"类比晶体管工作原理,揭示加法器从1位到多位的构建过程,并指出其局限性是导致编程中数值溢出等问题的根源。理解这些硬件逻辑有助于编写更高效的代码。

这里是数字化与人工智能的 “实验场” 与 “瞭望台” 1401

计算机底层原理:从原码到补码,深入理解CPU如何用加法实现减法运算

在计算机科学中,二进制是数据表示的基础,而整数运算则是CPU的核心功能之一。为了实现高效且统一的运算,计算机系统采用了特定的编码方案。原码是最直观的表示法,用最高位表示符号,其余位表示绝对值,但它存在零的歧义和运算复杂的缺陷。反码通过数值位取反来尝试统一加减法,但仍需处理循环进位,未能彻底解决问题。补码基于模运算思想,通过‘反码加1’的规则,完美实现了用同一套加法器完成所有加减法运算,消除了零的歧义,并扩展了表示范围。这种设计极大简化了CPU的电路结构,提升了运算速度与能效。在编程实践中,理解补码对于处理有

weixin_33994429的博客 395

从半加器到BCD加法器:用Logisim图解计算机底层运算的构建过程

本文通过Logisim工具详细图解了从半加器到BCD加法器的构建过程,深入浅出地讲解了计算机底层运算原理。从数字逻辑基础开始,逐步实现全加器、4位行波进位加法器,最终完成BCD码十进制加法器设计,帮助读者理解计算机组成原理的核心概念。

weixin_30879833的博客 365

用c语言实现加法运算,C语言用位运算实现加法运算

用位运算实现加法也就是计算机用二进制进行运算,32位的CPU只能表示32位内的数,这里先用1位数的加法来进行,在不考虑进位的基础上,如下1 + 1 = 01 + 0 = 10 + 1 = 10 + 0 = 0很明显这几个表达式可以用位运算的“^”来代替,如下1 ^ 1 = 01 ^ 0 = 10 ^ 1 = 10 ^ 0 = 0这样我们就完成了简单的一位数加法,那么要进行二位的加法,这个方法可行不...

weixin_30569303的博客 5264

递归大总结之位运算实现加法

递归大总结之位运算实现加法

月已满西楼的博客 824

计算机组成原理-一位加法器实现教程:深入理解计算机加法运算

计算机组成原理-一位加法器实现教程:深入理解计算机加法运算 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在计算机科学领域,理解计算机组成原理是基础且至关重要的一环。本文将带领您走进计算机加法运算的世界,通过介绍一位加法器的实现教程,帮助您掌握加法运算的基本原理与实现方式。计算机组成原理-一位加法器实现教程,是学习计算机组成原理不可或缺的实验指南。 项目技术分析 加法...

gitblog_06725的博客 441

计算机 加减乘除原理 二进制运算 PHP 位运算

<?php require('function.php'); // 二进制从右向左计算 $a = 1; // 1 0001 $b = 1 + 2; // 3 0011 dump($a & $b); // 0001 dump($a | $b); // 0011 dump($a ^ $b); // 0010 dump(~$a); // -2 dump(decbin($a)); // "1" dump(decbin(~$a)); // "111111111111111111111111.

m0_37711659的博客 392

算法训练 P0501 用位操作实现无符号整数的乘法运算

题目链接 首先实现二进制加法: 位的异或运算跟求'和'的结果一致: 异或 1^1=0 1^0=1 0^0=0 求和 1+1=0 1+0=1 0+0=0 位的与运算跟求'进位‘的结果一致: 位与 1&amp;1=1 1&amp;0=0 0&amp;0=0 进位 1+1=1 1+0=0 0+0=0 题目已经给出整数为正,否则需要在运算时将整数转换为相应的正整数。 #include &...

Nicolas的博客 1624

位运算实现两个数的加法

#include<stdio.h> int add(int a,int b) { if(b==0) return a; int sum,ret; sum=a^b; ret=(a & b)<<1; return add(sum,ret); } void main() { int a=4; int b=5; int sum=0; sum=a...

weixin_30682127的博客 165
上一篇: python警告
下一篇: c++ string真的能存无限多的数据吗
cpkiteman
博客等级 码龄5年 9粉丝 21原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值