数字电路中的原码,反码,补码的算法

原码反码补码详解:为什么计算机用补码做加减法 在计算机组成原理中,有符号整数的编码方式直接影响运算效率。原码、反码、补码是三种基础表示法,其核心原理基于模运算与二进制加法器设计。补码通过消除双零、统一加减法,显著降低硬件复杂度,成为现代CPU整数运算的基石。这一机制广泛应用于底层开发、嵌入式系统、网络协议校验和以及性能优化场景。理解补码的模运算本质与溢出判断逻辑,能帮助开发者避免类型转换、移位运算中的常见陷阱。本文深入剖析三种编码的转换规则与运算差异,结合硬件实现与编程实践,揭示补码设计背后的工程智慧。 阅读详情
引进机器数的3种表示法:原码、补码和反码,是将符号位和数值位一起编码,机器数对应的原来数值称为真值
1.原码表示法
原码表示方法中,数值用绝对值表示,在数值的最左边用“0”和“1”分别表示正数和负数,书写成[X]原表示X的原码。
例如,在8位二进制数中,十进制数+23和-23的原码表示为: 
[+23]原=00010111
[-23]原=10010111
应注意,0的原码有两种表示,分别是“00……0”和“10……0”,都作0处理。 
2.补码表示法
一般在作两个异号的原码加法时,实际上是作减法,然后根据两数的绝对值的大小来决定符号。能否统一用加法来实现呢?这里先来看一个事实。对一个钟表,将指针从6拨到2,可以顺拨8,也可以倒拨4,用式子表示就是:6+8-12=2和6-4=2
这里12称为它的“模”。8与-4对于模12来说是互为补数。计算机中是以2为模对数值作加法运算的,因此可以引入补码,把减法运算转换为加法运算。
求一个二进制数补码的方法是,正数的补码与其原码相同;负数的补码是把其原码除符号位外的各位先求其反码,然后在最低位加1。通常用[X]补表示X的补码,+4和-4的补码表示为: 
[+4]补=00000100
[-4]补=11111100
例1.11 求6-4。
因为[6] 补=00000110,[-4] 补=11111100  
 
所以 00000110-00000100=00000110+11111100=00000010
3.反码表示法 
正数的反码等于这个数本身,负数的反码等于其绝对值各位求反。例如: 
[+12]反=00001100
[-12]反=11110011
总结以上规律,可得到如下公式:X-Y=X+(Y的补码)=X+(Y的反码+1)
第三篇:学习InternVL2.0(探讨代码之训练模块版) InternVL2的训练模块 阅读详情

相关推荐

petalinux i2c的配置

1.硬件平台配置 1.内核配置 cd petalinux-config -c kernel -> Device Drivers -> I2C support -> i2C Hardware Bus support -> Xilinx I2C Controller Pressing 启用CONFIG_I2C_XILINX=y 2.修改用户设备树 cd cd project-spec/meta-user/recipes-bsp/device-tree/files/ i2c2:

u013403954的博客 4313

数电复习(1)--二进制数的补码运算

1

m0_56479655的博客 1798

山石网科Hillstone防火墙基础上网配置_CLI命令行(最新版)

山石网科Hillstone防火墙安全网关基础上网基础网络配置_CLI命令行(最新版)

路与肥的博客 1万+

数字电路基础知识——数字IC中的进制问题(原码,反码,补码以及各进制的转换)

数字电路基础知识——数字IC中的进制问题(原码,反码,补码以及各进制的转换) 一、原码,反码,补码,符号-数值码。 以4bit为例,给出各自表示的数值范围。 原码: 符号位+真值,最高位表示符号位。 0表示正数,1表示负数 [+3]原 = 0011 [-3]原 = 1011 原码中0000和1000都表示0。 一个n bit位的有符号数,他表示的范围是 -2n-1~2n-1 反码: 正数的...

用心记录每天的学习,提升自己,虽然有的很基础但真的很重要! 4296

星宸科技SSD20x/SSD21X应用层DEMO实战指南:从入门到深度定制

本文详细介绍了星宸科技SSD20x/SSD21X系列芯片的应用层DEMO开发实战,从基础环境搭建到深度定制开发。内容涵盖DEMO资源获取、核心功能实现、第三方库集成以及性能优化技巧,帮助开发者快速掌握智能显示和多媒体处理应用的开发方法。特别适合嵌入式开发者在智能家居、工业控制等场景中应用。

weixin_42524226的博客 267

HackRF实战:用Portapack扩展板玩转GPS信号模拟(附固件刷写教程)

本文详细介绍了如何使用HackRF与Portapack扩展板进行GPS信号模拟,包括固件刷写、信号生成与发射配置等实战操作。通过专业工具和优化技巧,读者可以掌握软件无线电的高级应用,解决手机定位难题,同时强调安全合规使用的重要性。

weixin_28717431的博客 362

数电知识点总结第一章:数制和码制

1.在舍弃进位的条件下,减去某个数可以用加上它的补码来代替 2.二进制负数的补码=它的反码+1(符号位不变) 例如:10011010(-26)的反码是11100101,补码是11100110 注意:在进行二进制补码运算时,要首先确定有效位数的个数,如13+10和-13-10的绝对值为23,所以必须用有效数字为5位的二进制数才嫩表示,再加上一位符号位,就得到6位数的二进制补码。否则超过了有效数

zyn919的专栏 3061

稳压二极管选型指南:关键参数与电路稳定性优化

本文深入解析了稳压二极管在电路设计中的核心作用与选型要点。文章详细阐述了稳定电压、动态电阻、额定功耗等关键参数对电路稳定性的影响,并结合实战案例,提供了从需求分析到参数验证的系统化选型流程与优化策略,帮助工程师避免常见设计陷阱,实现电路稳定性优化。

weixin_29196891的博客 686

数字电路学习笔记/期末/考研(二)——逻辑算术运算和逻辑运算

数字电路/笔记/期末/考研

m0_66234645的博客 1975

【33】软考软件设计师——算法题(二):贪心法与回溯法深度精讲|第4题进阶满分攻略

本文是《软件设计师·50讲通关|从零基础到工程师职称》专栏第33篇,承接第32篇分治法与动态规划,聚焦**下午第4题算法大题进阶核心**,详解贪心法与回溯法两大高频难点算法。全文超4000字深度拆解贪心法核心原理、贪心选择性质、局部最优推全局最优的底层逻辑,厘清贪心算法适用边界与经典误区;深挖回溯法深度优先遍历思想、递归回溯三步流程、可行性剪枝与最优性剪枝两大核心技巧;全覆盖活动选择、零钱兑换、01背包贪心禁区、八皇后、全排列等软考必考经典题型;配套标准化算法框架代码、考场填空模板、剪枝优化实操案例

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 439

在 SAP BTP ABAP 环境中构建多租户应用:从架构到实战

ABAP多租户应用架构解析 本文详细介绍了SAP BTP中ABAP环境的多租户应用架构,重点阐述了其核心组件及协作机制。在云原生SaaS模式下,多租户架构使多个客户能共享同一套ABAP平台,同时保持数据和配置隔离。架构包含三层:平台与子账户层、多租户应用与平台服务层(含Approuter、ABAP Solution service、XSUAA等核心组件)、ABAP系统与租户层。文章深入分析了各组件功能,包括Approuter的路由机制、ABAP Solution service的自动资源调度、XSUAA的安

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 214

二进制数原码-反码和补码的数字电路实现

原码转补码的数字电路实现,主要应掌握转换原理和加法器原理,熟悉Logisim上的操作,熟悉逻辑门和基本线路原件。

Kamisama6930的博客 5594

数字盲水印嵌入和提取的实现基于小波变换DWT算法

数字盲水印是指在不知道原始图像的情况下,在其上嵌入水印并在后续的提取过程中能够恢复出原始水印的一种技术。本文介绍的数字盲水印嵌入和提取的实现方法基于小波变换DWT算法。具体来讲,DWT将信号或图像进行二次下采样和卷积滤波,使得高频分量的图像信息被集中在一个小区域内,方便进行嵌入和提取操作。其中 a 表示嵌入强度,而 watermark 则是用于嵌入的水印图像,这里我们嵌入的是一个全灰的图像。通过以上的代码,我们可以实现数字盲水印的嵌入和提取,并在一定程度上保护数字图片的版权安全。

HackWhisper的博客 512

数制与码制:数字电路的地基与工程实践指南

在数字电子技术与计算机体系结构中,数制与码制是连接现实信息与二进制世界的底层语言规范。其核心原理基于基数、位权与数码三要素,通过进位计数制实现数值的多进制表达,并借助原码、反码、补码及BCD码等编码规则解决负数表示、运算简化与人机交互问题。掌握这些基础概念,能显著提升FPGA逻辑设计、单片机寄存器配置及通信协议解析的可靠性,避免因进制转换错误或补码溢出导致的系统故障。典型应用场景包括内存地址的十六进制表示、跨时钟域传输的格雷码同步、串口通信的ASCII与奇偶校验,以及计算器显示中的BCD加法修正。从数制码制

weixin_34194829的博客 52

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

「原码 反码 补码 移码」一探究竟(中)

原文链接 上文「原码 反码 补码 移码」一探究竟(一)说了基本定义和原码,对于补码,我们只知道是对原码符号位不变,其他位置取反,最后再加 1 得来的,为何如此呢?接下来咱们来揭下「补码」的面具,看看它到底是什么。 0. 关于 1 + (-1) 首先,先看一个问题。 1 的原码为[0000 0001],-1 的原码为[1000 0001],所以计算这两个数相加,应该是这样的: 1 + (-1) ...

weixin_34015566的博客 188

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

位非运算(~) 详细解释

  在网上找不到~10的详细解释, 难受的一匹, 想了老半天   这些位运算的计算都是以补码的方式进行的, 因为计算机底层都是以补码进行计算的      位非运算(~): 转二进制后取反---0变1, 1变0      举一个超详细的例子:   ~10的计算:     10的二进制: 0000 1010 ( 以8位进行描述 )     正数的补码就是原码     10...

diaochaosen7367的博客 3812

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

计算机中的原码、反码和补码

1. 前言 我们知道,现代计算机主要采用数字集成电路搭建,数字电路通过高低电平只能表示0和1,所以计算机只认识0和1。无论是存储还是计算,计算机均采用二进制系统完成。例如:十进制的5用二进制表示为101。 ​ 机器数 数字在计算机中的二进制表示形式叫作「机器数」。机器数有两个特点: 1、机器数是带符号的,即分正负。最高位0代表正数,1代表负数。 2、二进制位数受设备限制,字长8位叫一字节,机器字长一般是字节的整数倍,例如:32位、64位。 例如机器字长为8的情况下,十进制的5机器数表示为00000101,-

程序员小潘 8181

从电路视角解析原码、反码与补码:硬件如何实现有符号整数运算

在计算机底层,数字的表示与运算是通过逻辑电路实现的。有符号整数的编码方案,如原码、反码和补码,其设计核心在于如何让硬件高效、统一地处理加减法。原码虽直观,但需要复杂的符号判断逻辑;反码通过取反操作向统一运算迈进,却引入了循环进位问题。补码则利用模运算原理,通过取反加一的电路实现,使得加法器无需区分正负号即可直接运算,实现了硬件设计的极简与高效。这种编码方式不仅解决了零的歧义,还成为现代CPU中算术逻辑单元(ALU)的基石,广泛应用于从简单微控制器到高性能处理器的所有数字系统。理解补码的电路实现,是掌握计算机

adr5970的博客 284

计算机底层整数表示:原码、反码与补码的演进与工程实现

在计算机体系结构中,整数的表示与运算是基础且核心的课题。其原理源于对硬件电路统一性与效率的极致追求,即如何仅用一套加法器电路高效处理所有算术运算。这一需求催生了从原码、反码到补码的技术演进。原码符合人类直觉但存在正负零和运算复杂的问题;反码通过按位取反初步统一了加减法运算,但引入了循环进位;最终,补码通过“取反加一”的巧妙设计,彻底解决了零的唯一性问题,并实现了运算的完全统一,仅通过基础的二进制加法器即可完成所有操作,无需额外判断逻辑。这种表示法的技术价值在于极大简化了CPU算术逻辑单元(ALU)的设计,提

weixin_30301449的博客 313

二进制、原码反码补码与位运算:从加减法到溢出和移位

在计算机底层中,数据终究以二进制形态存储和运算。理解进制转换与整数的编码方式是掌握位操作、内存分析和调试技巧的基石。原码、反码、补码这三种有符号数表示法,隐藏着计算机将减法转化为加法的核心原理,也让溢出、符号扩展等细微行为变得可预测。现代CPU之所以选择补码,不仅是为了统一加减法电路,更是为了在有限位宽下获得对称且唯一的数值表示。基于补码的位运算,如按位与、或、异或、取反,通过掩码和移位能够高效实现状态管理、权限控制与协议解析。在实际开发中,从无符号字节解析出有符号温度、算术右移与整除的差异,都是常见且容易

weixin_34220179的博客 364

为什么CPU乘法器必须用补码而非原码

补码乘法是数字电路与处理器硬件实现整数乘法的基础技术,其核心在于利用模运算同余性,使符号位自然融入算术逻辑,支持溢出实时检测、ALU电路复用和低功耗设计。相比原码乘法依赖事后验证、位宽预判和独立符号处理,补码方案通过Booth算法等机制,在面积、延迟和可靠性上具备显著工程优势。该技术广泛应用于CPU整数乘法指令(如x86 IMUL)、FPGA IP核及嵌入式MCU的算术单元中,是计算机组成原理与IC前端设计的关键实践基础。

weixin_34101784的博客 308

8位原码反码补码表

qq_25474469的博客 1万+

补码原理与工程实践:从原码反码到硬件运算真相

补码是现代计算机表示有符号整数的基础编码方式,其本质是模2^n的等价类映射,使加减法电路得以统一实现。相比原码的双零缺陷和反码的进位循环问题,补码通过‘取反加一’的数学变换,消除了符号处理逻辑、扩展了数值范围,并成为x86、ARM、RISC-V等所有主流CPU架构的默认整数表示标准。它支撑着C语言类型转换、MATLAB typecast、Python struct.unpack等跨语言数据解析行为,也是调试内存dump、分析汇编指令(如ADD/SUB/JO/JB)及ALU标志位(SF/OF/CF)解读的核心

weixin_42639246的博客 234

补码为什么等于反码加1?从模运算到硬件设计的完整证明

在计算机底层,二进制如何表示负数一直是计算机组成原理中的核心问题。原码直观却运算复杂,反码虽统一规则但仍存在双零缺陷。透过模运算与同余的数学视角,负数可映射为某个正数在固定位宽下的同余类,这正是补码能够简化电路的关键。补码将减法转化为加法,使硬件加法器无需额外借位逻辑,从而成为现代计算机的通用编码方案。基于该原理,补码等于反码加1并非人为规定,而是由模2^n的计数本质推导出的必然结果。从位运算到类型转换,理解这一证明过程有助于开发者避开溢出与符号位陷阱,真正掌握底层原理。

weixin_33800463的博客 409

计算机数值编码全解析:原码、反码、补码、移码与浮点数编码

计算机内部所有数值都以定长二进制位串表示,原码、反码、补码和移码是理解整数编码与运算的基石。这些编码并非随意规定,而是为满足硬件定长、无符号位、复用加法器等约束而演进:补码借助模运算统一加减法,移码专为浮点数阶码比较而生,IEEE 754浮点数则通过符号、阶码、尾数三段式布局表示实数。掌握这些原理,能有效解决串口协议解析、寄存器配置、浮点精度丢失等工程问题。从补码的加权求真值到浮点数的位级拆解,系统梳理五种编码的规则、边界与手算方法,并结合代码实测,可帮助开发者在底层数据处理中避开常见陷阱。

weixin_30119911的博客 291

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

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

weixin_33994429的博客 395
上一篇: Linux启动过程中几个重要配置文件的执行过程
下一篇: ModelSim中如何指定信号的数值进制
马中马
博客等级 码龄18年 112粉丝 26原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值