原码,反码,补码详解

计算机组成原理——原码、反码、补码的表示范围 原码、反码、补码的表示范围是如何得到的原码纯整数的原码纯小数的原码反码纯整数的反码纯小数的反码补码纯整数的补码纯小数的补码 原码 首先说原码,原码是有符号数中最简单的编码方式。原码表示法在数值前面增加了一位符号位(即最高位为符号位):0表示为正数,1表示为负数,其余为数值位,表示数值大小。 纯整数的原码 原码的范围是 – (2n–1) ≤ x ≤ 2n–1(n是整数位数) 这是如何得到的呢? 以机... 阅读详情

前言

原码,反码,补码都是计算机对数字的二进制的定点表示方法

原码,反码,补码都使用8位数表示

很多人疑问用原码就可以表示,为什么还要有反码和补码?等众多问题

那么看完这篇文章大家就会明白

原码

怎么得到原码

原码的第一位为符号位:0是正数,1是负数

十进制原码
500000101
-510000101

原码的范围

原码一共8位,第一位用作表示正负,还有7位用来表示数值大小

那么可以算出原码的数据范围是:-2^7-1到2^7-1(即-127到127)

避免有些同学可能转不过来弯为什么要减1:因为通过2^7=128我们要知道128是表示数的个数,而不是表示到0~128,它表示的是0到127这128个数(1111111是七位数可以表示的最大二进制数,即十进制的127)

接着我们就可以发现00000000和10000000都表示0,一个表示+0,一个表示-0

反码

为什么要有反码

既然原码已经可以表示正数和负数了为什么还要有反码

那是因为虽然原码可以表示负数,但是一旦使用原码表示负数参与运算就会出现错误

例如:

十进制计算:-5+1=-4

使用原码计算:10000101+00000001=10000110

原码计算结果转为十进制就是-6,显然结果有问题

这个时候就需要反码来解决这个问题

怎么得到反码

正数的反码是其本身(等于原码),负数的反码是符号位保持不变,其余位取反

十进制原码反码
10000000100000001
-51000010111111010

反码使用

使用反码计算负数,出来的是结果原码的反码

11111010+00000001=11111011

结果11111011的原码为10000100,十进制表示就是-4

反码数据范围

同样反码的数据范围也是:-127到127

补码

为什么要有补码

之所以有补码是因为反码不能处理跨0的计算

例如:-5+6=1

使用原码计算:10000110+00000111=10001101(十进制结果为-13)

使用反码计算:11111001+00000111=00000000(结果100000000,但是计算结果只留最低位8位00000000)

所以原码和反码计算结果都是错的

怎么得到补码

正数的补码是其本身,负数的补码等于其反码 +1

十进制原码反码补码
6000001110000011100000111
-5100001101111100111111010

补码使用

使用补码与一个原码进行相加就会得到一个十进制数的原码

11111010+00000111=00000001(结果100000001,但是计算结果只留最低位8位00000001)

00000001的十进制就是1

补码范围

补码与原码,反码的范围不同它是:-128到127

计算机原码、反码、补码的概念和原理详解 阅读详情

相关推荐

Unidbg补环境实战:复现Shopee风控Native层运行环境

Android App风控已从HTTP层签名校验,演进为深度依赖Native层系统调用与硬件特征的多维验证。其核心原理在于通过JNI桥接Java与Native代码,调用openat、sysconf、getrandom等系统接口读取/proc、/sys、/dev等路径的真实状态,并结合SELinux策略、CPU拓扑、分区哈希等硬性指标构建设备可信画像。这种技术架构显著提升了对抗黑灰产的能力,但也对逆向分析与自动化调用提出更高要求——必须精准模拟底层环境而非仅Hook逻辑。Unidbg补环境正是为此而生:它支持

weixin_30533109的博客 636

原码,反码,补码的基本概念及其范围

在这个图上,可以很明显地看出三者之间的关系 原码、补码、反码三者的正数部分都是一样的原码八位中,除去符号位,后面的部分对应相等。反码在负数这一部分,就是将原码负数部分,除符号位外,按位取反 由于-0和+0的存在,会影响正常的加减法操作,所以将二者合二为一。再将反码负数部分每个数都加1,就得到了补码。计算机中数值计算都是以补码形式进行的,它有效解决了负数加法的问题。假设有效部分是n位,机器字长是n+1位 表示的范围是一样的,因为真值最小是一样的,就是当n是整数时,真值负数最小时,原码是1111 1111,反

cool-wangtongzhou 3万+

GD32F103实战:用ADC+DMA实现高精度多通道电压采集与OLED实时显示(附完整工程)

本文详细介绍了如何利用GD32F103的ADC+DMA技术实现高精度多通道电压采集,并通过OLED实时显示数据。文章包含硬件架构设计、ADC配置技巧、DMA传输优化及显示系统实现方案,提供完整工程代码和调试指南,适用于工业传感器和环境监测设备开发。

weixin_42567497的博客 399

原码、反码和补码

8位编码范围表汇总 1、原码 源码的范围:-127 ~ +127,最高位是符号位,0表示正数,1表示负数 [+127]原 = 0 1111111 [-127]原 = 1 1111111 数值“0”由两种原码表示形式: [+0]原 = 0 0000000 [-0]原 = 1 0000000 2、反码 源码的范围:-127 ~ +127,最高位是符号位,0表示正数,1表示负数 [+127]反 = 0 1111111 [-127]反 = 1 0000000 数值“0”由两种反码表示形式: [+0]反 = 0

lluojian的博客 6647

从零构建物联网监控系统:STM32+迪文屏+WiFi模组的实战解析

本文详细解析了基于STM32微控制器、迪文串口屏和WiFi模组构建物联网监控系统的完整方案。从硬件选型、系统架构设计到数据交互实现,提供了包括迪文屏GUI开发、STM32通信协议、低功耗优化等实战经验,帮助开发者快速掌握物联网监控系统的核心技术。

docker7nomad的博客 727

快速上手CH340N电路设计(CH340N USB转串口模块 USB Type-C接口 CH340系列芯片讲解)

一、上模块 二、功能分析 l 芯片:CH340N l 输入接口:USB、TYPE-C l 输出接口:TTL(5V\3.3V\GND\TX\RX) l 指示灯:电源、TX、RX 三、CH340x芯片 l CH340 是一个 USB 总线的转接芯片,实现 USB 转串口 l 全速 USB 设备接口,兼容 USB V2.0 l 硬件全双工串口,内置收发缓冲区,支持通讯波特率 50bps~2Mbps l 支持常用的 MODEM 联络信号 RTS、DTR、DCD、RI、DS...

东小东博客 5万+

原码,反码,补码,移码的表示范围以及数据溢出

假设二进制机器字长是n+1位,且为整数原码表示的范围: −(-1)≤ x ≤-1反码表示的范围: −(-1)≤ x ≤-1补码表示的范围: −≤ x ≤-1移码表示的范围: −≤ x ≤-1移码的符号位中0表示负数,1表示正数,简单来说,原码的补码数值位不变,符号位取反就是移码。 对于8位寄存器: 原码表示范围为 -127-127,即1111 1111~0111 1111 反码表示范围为 -127-127,即1000 0000~0111 1111 补码表示范围为 -128

Happy learning and coding journey! 2万+

【OpenClaw企业级智能体实战】第16篇:电商“龙虾”掘金记:用OpenClaw实现小红书/抖音/淘宝全自动矩阵运营(2026实测版)

2026年,OpenClaw(小龙虾)已成为电商运营的核心效率工具——从公众号文案3分钟生成到TikTok爆款视频1小时复刻,从多平台内容同步到自动比价加购,彻底重构了电商运营的工作模式。本文基于真实商业案例(元岳科技、TikTok跨境卖家、淘宝MCP工具),系统拆解电商智能体的落地路径:先详解OpenClaw在电商场景的核心原理与变现模式(代部署、模板售卖、轻定制、内容套利),再提供阿里云/本地双部署方案,完整实现小红书/抖音/淘宝的自动化运营(热点抓取、内容生成、多平台分发、数据分析)。

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

原码,反码,补码———详解

计算机中的有符号数有三种表示方法,即原码,反码,补码。 三种表示方法均有符号位和数值位两部分,符号位都是用数字二进制中最高位0表示正,用数字二进制中最高位1表示负,而数值位有三种表示方法,各不相同。

2201_75806908的博客 7479

【应用】OpenClaw玩转有道云笔记

功能名称核心原理实操示例(直接复制可用)实操避坑+补充说明网页剪藏插件自动抓取网页正文、下载图片,通过 API 发送到你的有道云笔记,内联图片避免防盗链失效帮我把这个网页剪藏到云笔记:https://example.com/article1. 避坑:知乎、公众号等需登录的网站,先在浏览器登录再剪藏;2. 原理:自动过滤广告,只留正文;3. Twitter/X 剪藏需额外配置 APIFY_API_TOKEN(见1.2.4)创建笔记。

海兰 712

基于YOLOv8的城市违建识别系统:从数据集构建到UI界面实现

YOLOv8是Ultralytics公司于2023年推出的最新一代YOLO(You Only Look Once)系列目标检测算法。更高效的骨干网络设计改进的锚框机制更精确的损失函数支持分类、检测、分割等多任务YOLOv8特别适合像违建识别这样的实时检测任务,能够在保持高精度的同时实现快速推理。

YOLO 674

原码, 反码, 补码 详解

1-127的结果应该是-128, 在用补码运算的结果中, [1000 0000]补 就是-128. 但是注意因为实际上是使用以前的-0的补码来表示-128, 所以-128并没有原码和反码表示.(对-128的补码表示[1000 0000]补算出来的原码是[0000 0000]原, 这是不正确的)使用补码, 不仅仅修复了0的符号以及存在两个编码的问题, 而且还能够多表示一个最低数. 这就是为什么8位二进制, 使用原码或反码表示的范围为[-127, +127], 而使用补码表示的范围为[-128, 127].

qq_44636880的博客 1993

AUTOSAR知识点 之 XCP (二):XCP基础概念

学习XCP的过程中,对XCP的基本概念要做一个全面的认知,因为里面有很多缩写以及难以理解的点,假设对此模模糊糊一知半解,那么对整个协议栈的认知会遇到极大的障碍。XCP的信号流传输图示如下XCP 标准主要分为 5 个部分:这部分提供了对于协议的一个概况介绍,包括 XCP 的功能和基础性内容。这部分内容对协议层进行了详细的规范和说明。

梦想技术家 2769

原码、反码、补码详解

原码、反码、补码详解原码原码表示法优缺点反码反码表示法举例补码补码表示法补码的定义 原码 原码表示法 用最高位表示符号位,‘1’表示负号,‘0’表示正号。其他位存放该数的二进制的绝对值。 优缺点 采用源码表示法简单易懂,即符号位加上二进制数的绝对值,但他最大的缺点就是加法运算复杂。 加法运算复杂,什么意思呢? 如果是同号相加,则两数的数值相加。 但如果是异号相加,则要进行减法,而在进行减...

Death Note 1455

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

上一篇: Go语言指针,栈和堆
下一篇: Golang阿里云短信服务使用教程
走,我们去抽风
博客等级 码龄5年 21粉丝 22原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值