当前位置: 首页 > news >正文

原码、反码、补码:概念解析与记忆方法

适合读者:软考中级备考同学
阅读时间:3分钟
内容:定义、对比表格、记忆口诀、经典例题


1. 为什么需要这三种编码?

计算机内部使用二进制,并且只能做加法运算。为了表示负数并把减法转化为加法,人们设计了三种编码方式:原码、反码、补码。移码则主要用于浮点数的阶码表示。

理解这三种编码,是学习计算机组成原理的基础,也是软考选择题的高频考点。


2. 原码(Sign-Magnitude)

定义

  • 正数:符号位为0,其余位表示数值的绝对值
  • 负数:符号位为1,其余位表示数值的绝对值

示例(4位机器字长)

真值原码
+50 101
-51 101

优点:直观,容易理解。
缺点:0有两种表示(+0=0000,-0=1000);加减运算需要单独处理符号位,硬件实现复杂。
用途:通常用于人类阅读,计算机内部不直接使用。


3. 反码(Ones‘ Complement)

定义

  • 正数:与原码相同
  • 负数:符号位不变,数值位按位取反(0变1,1变0)

示例(4位)

真值原码反码
+501010101
-511011010

缺点:同样存在+0和-0两种表示。反码很少直接用于计算,主要是求补码的中间步骤。


4. 补码(Two’s Complement)

定义

  • 正数:与原码相同
  • 负数:反码加1

示例(4位)

真值原码反码补码
+5010101010101
-5110110101011

重要性质

  • 0只有一种表示:0000
  • 4位补码可以表示-8(1000),比原码多表示一个负数
  • 减法可以转化为加法:5 - 3 = 5 + (-3的补码),直接相加即可得到正确结果

用途:计算机内部整数运算全部使用补码。


5. 移码(Excess-K / Biased Code)

定义
通常定义为:移码 = 补码 + 2^(n-1)(n为机器字长),或者等价地“补码的符号位取反”。

示例(4位)

真值补码移码
+501011101
-510110011

用途:表示浮点数的阶码(指数部分)。两个移码可以直接比较大小,无需考虑符号位。


6. 一张对比表(4位机器,建议截图保存)

真值原码反码补码移码
+50101010101011101
-51101101010110011
+00000000000001000
-01000111100001000

观察

  • 补码没有-0,因此能多表示一个负数(4位时为-8)
  • 移码符号位与补码相反

7. 记忆口诀

正数三码都一样,负数反码加一得补码。
移码就是补码符号反,浮点阶码常用它。

建议抄在笔记本上,考前浏览一遍。


8. 经典例题(软考常见题型)

题目:若机器字长为8位,求-1的补码。

解题步骤

  1. 1的二进制:00000001
  2. -1的原码:10000001
  3. -1的反码:11111110
  4. -1的补码:11111111

答案:11111111

同类练习题
8位补码能表示的最小负数是?
A. -127 B. -128 C. -0 D. -255


9. 给备考同学的一句话

不需要完全理解“为什么补码等于反码加1”,考试只需要会计算:负数补码 = 符号位不变,数值位取反,再加1。计算熟练即可得分。


🔔本专栏日更2篇,点击头像 → 专栏《软考中级高频考点》订阅,第一时间接收新内容

#软考中级 #软件设计师 #原码反码补码 #计算机系统知识

http://www.jsqmd.com/news/882316/

相关文章:

  • 百度网盘解析工具终极指南:3分钟突破限速实现高速下载
  • ARM SVE2指令集与UADDLB/UADDLT指令详解
  • AlwaysOnTop:终极Windows窗口置顶工具完整使用指南
  • 碧蓝航线Alas自动化脚本:解放双手的终极游戏助手完整指南
  • GHelper技术深度解析:华硕笔记本轻量控制工具的实现原理与高级配置指南
  • 信创运维实战:在ARM版银河麒麟V10上离线搞定telnet的完整流程(附软件包查找技巧)
  • 手把手教你处理TT100K数据集:从COCO格式转换到YOLO格式的完整流程(附Python脚本)
  • v100 是否支持MoE,缺少现代优化内核 FlashAttention、PagedAttention
  • 从NCM格式束缚到MP3音乐自由:3步解锁你的网易云音乐收藏
  • 直流电机驱动控制电路
  • 从人工标注到模型上线:一个多月搞定裂缝检测数据集的实战复盘(含YOLO/VOC格式)
  • 2026国内排插品牌推荐:安全与设计兼具的品质之选 - 品牌排行榜
  • 实测避坑:在Windows 11 + RTX 4090上,用Python 3.10和CUDA 12.3搞定3D Gaussian Splatting训练
  • 量子态保真度与噪声通道在量子计算中的应用
  • 3分钟掌握OpenSpeedy:免费开源游戏加速工具终极指南
  • 避坑指南:在openEuler 22.03上配置vsftpd虚拟用户,解决gdbm数据库和SELinux权限问题
  • 神经网络与深度学习(二)
  • 贵阳团体服装定制指南:文化衫、广告衫、T恤、POLO、马甲、冲锋衣怎么选?6大本土实力厂家优势解析 - 贵州服装测评君
  • 英特尔 Hammer Lake 处理器将引入统一核心架构并重拾超线程技术
  • GHelper终极指南:华硕笔记本轻量控制工具的专业使用教程
  • 从CentOS迁移到openEuler?手把手教你在vSphere ESXi 7.0上搭建测试环境
  • 免费游戏加速神器OpenSpeedy:5分钟解锁极致流畅体验终极指南 [特殊字符]
  • 机器学习力场微调策略:高效预测LiF中锂离子扩散性能
  • 以书香润心,借坚韧前行
  • CANN 算子拆解:FlashAttention 在 ops-transformer 里的实现逻辑
  • 从PDB到Mol:手把手教你用PyMOL和Open Babel搞定蛋白质-小分子复合物的结构文件转换
  • 内存池仿Nginx C++实现
  • 如何3分钟配置智慧树自动刷课插件:终极高效学习解决方案
  • 终极NCM文件解密教程:一键解锁网易云音乐加密格式
  • 别再只盯着DAVIS数据集了!手把手教你用Python复现Space-Time Memory Networks(附代码)