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

原码、反码、补码:概念解析与记忆方法 适合读者软考中级备考同学阅读时间3分钟内容定义、对比表格、记忆口诀、经典例题1. 为什么需要这三种编码计算机内部使用二进制并且只能做加法运算。为了表示负数并把减法转化为加法人们设计了三种编码方式原码、反码、补码。移码则主要用于浮点数的阶码表示。理解这三种编码是学习计算机组成原理的基础也是软考选择题的高频考点。2. 原码Sign-Magnitude定义正数符号位为0其余位表示数值的绝对值负数符号位为1其余位表示数值的绝对值示例4位机器字长真值原码50 101-51 101优点直观容易理解。缺点0有两种表示00000-01000加减运算需要单独处理符号位硬件实现复杂。用途通常用于人类阅读计算机内部不直接使用。3. 反码Ones‘ Complement定义正数与原码相同负数符号位不变数值位按位取反0变11变0示例4位真值原码反码501010101-511011010缺点同样存在0和-0两种表示。反码很少直接用于计算主要是求补码的中间步骤。4. 补码Two’s Complement定义正数与原码相同负数反码加1示例4位真值原码反码补码5010101010101-5110110101011重要性质0只有一种表示00004位补码可以表示-81000比原码多表示一个负数减法可以转化为加法5 - 3 5 (-3的补码)直接相加即可得到正确结果用途计算机内部整数运算全部使用补码。5. 移码Excess-K / Biased Code定义通常定义为移码 补码 2^(n-1)n为机器字长或者等价地“补码的符号位取反”。示例4位真值补码移码501011101-510110011用途表示浮点数的阶码指数部分。两个移码可以直接比较大小无需考虑符号位。6. 一张对比表4位机器建议截图保存真值原码反码补码移码50101010101011101-5110110101011001100000000000001000-01000111100001000观察补码没有-0因此能多表示一个负数4位时为-8移码符号位与补码相反7. 记忆口诀正数三码都一样负数反码加一得补码。移码就是补码符号反浮点阶码常用它。建议抄在笔记本上考前浏览一遍。8. 经典例题软考常见题型题目若机器字长为8位求-1的补码。解题步骤1的二进制00000001-1的原码10000001-1的反码11111110-1的补码11111111答案11111111同类练习题8位补码能表示的最小负数是A. -127 B. -128 C. -0 D. -2559. 给备考同学的一句话不需要完全理解“为什么补码等于反码加1”考试只需要会计算负数补码 符号位不变数值位取反再加1。计算熟练即可得分。本专栏日更2篇点击头像 → 专栏《软考中级高频考点》订阅第一时间接收新内容#软考中级 #软件设计师 #原码反码补码 #计算机系统知识