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

原码、反码、补码的转换

定义

  • 原码:符号位加上真值的绝对值(即:最高位为符号位,0正1负,其余位为数值)。
  • 反码
    • 正数:与原码相同。
    • 负数:符号位不变,其余各位(数值位)按位取反。
  • 补码
    • 正数:与原码相同。
    • 负数在反码的最低位加 1

例子

假设字长为 4 位:

1. 正数(例如 +2)

  • 原码: 0010
  • 反码: 0010(正数不变,千万不要取反
  • 补码: 0010(正数不变,也不要加 1

2. 负数(例如 -2)

  • 原码: 1010(最高位变1,表示负)
  • 反码: 1101(符号位 1 不动,后面的 010 变成 101
  • 补码: 1110(反码 1101 + 1 = 1110

二进制补码计算方法

计算补码表示的数值大小时,最关键的是首先看最高位(最左边第一位)

核心步骤

  1. 看最高位(符号位):

    • 如果是 0:表示正数。直接算。
    • 如果是 1:表示负数。需要“取反加一”求出绝对值,最后加负号。
  2. 负数的计算公式:

    • 步骤: 先把每一位取反(0变1,1变0),然后结果加 1。算出这个新数的十进制大小,就是该负数的绝对值。

例子 1:正数的情况(最简单)

假设字长为 8 位,二进制补码:0000 1101

  1. 检查符号位: 最高位是 0,这是正数。
  2. 直接计算:
    • 对应位权值相加:8 + 4 + 1 = 13
    • (第3位是1,代表8;第2位是1,代表4;第0位是1,代表1)
  3. 结果: +13

例子 2:负数的情况(经典例子)

假设字长为 8 位,二进制补码:1111 0101

  1. 检查符号位: 最高位是 1,这是负数。
  2. 求绝对值(取反加一):
    • 第一步(取反):1111 0101 每一位反过来 → 变成 0000 1010
    • 第二步(加一): 0000 1010 + 1 → 变成 0000 1011
  3. 计算大小:
    • 0000 1011 换算成十进制:8 + 2 + 1 = 11
  4. 加上负号:
    • 结果是 -11

例子 3:位数较少的负数

假设字长为 4 位,二进制补码:1110

  1. 检查符号位: 最高位 1,是负数。
  2. 求绝对值:
    • 取反: 1110 → 变成 0001
    • 加一: 0001 + 1 → 变成 0010
  3. 计算大小:
    • 0010 是十进制的 2。
  4. 结果: -2

例子 4:特殊的最小负数

假设字长为 8 位,二进制补码:1000 0000

  1. 检查符号位: 最高位 1,是负数。
  2. 特殊情况:
    • 按照规则取反得到 0111 1111,加 1 后变成 1000 0000(也就是128)。
    • 这是补码的特殊规定:1 后面全 0,表示该位宽能容纳的最小负数。
  3. 结果: -128
http://www.jsqmd.com/news/58804/

相关文章:

  • KIT的替代产品工单
  • 实验四 组合与继承
  • 2025 GODIAG BMW BDC2/BCP Test Platform: Diagnose, Program, Sync Keys for Euro/American BMWs
  • 实验四:组合与继承
  • 极大连通子图和极小连通子图
  • 2025百度爱采购服务商推荐3家靠谱品牌解析
  • 论文写得慢还易重复?学术AI助手帮你省80%时间
  • 九、一个AXIDMA的驱动示例
  • 【机器视觉通用检测框架】基于VS2019 C#+VisionPro9.0开发的视觉框架软件,全套源码,开箱即用 - 实践
  • 2025年最新!新疆建筑企业资质代办服务机构分析与选择参考
  • 09.注解Plus
  • 交叉编译GDB调试
  • 2025 铝合金门窗十大品牌权威榜:五维实测甄选行业标杆
  • 编程题库 No.16 加班薪水UP
  • AI元人文:在档口前构筑公平排队的文明舞台
  • 详细介绍:css学习盒模型:
  • python题库 No.17 大运预选
  • Playwright高级用法全解析:从自动化到工程化的进阶指南 - 教程
  • OpenAI与Broadcom合作部署10吉瓦自研AI加速器
  • 20251202周二日记
  • why America is Bag
  • [转]概率图模型:原理与技术-2.1概率论
  • 20251202 之所思 - 人生如梦
  • 基于CNN卷积神经网络和GEI步态能量提取的视频人物步态识别算法matlab仿真
  • [ROS 系列学习教程] ROS与操作系统版本对应关系
  • C# 闭包捕获变量的经典问题分析
  • 2025年河南工业大学2025新生周赛(6)
  • 容斥原理练手:cf1750D
  • 12/2
  • 12.13任务