原码、反码、补码的转换

news/2025/12/2 23:02:03/文章来源:https://www.cnblogs.com/lf109/p/19299619

定义

  • 原码:符号位加上真值的绝对值(即:最高位为符号位,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.mzph.cn/news/984847.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

KIT的替代产品工单

第一步:依次进入Lists-Accounting-Items-New,创建Assembly产品。第二步:Assembly产品的创建选择。第三步:建立Assembly的过程同Inventory,重点注意Components的设置,下面的组合包含两种产品,手串和盘子各1个。第…

实验四 组合与继承

实验1 1.源代码#pragma once#include <vector>#include <array>#include <string>class GradeCalc {public:GradeCalc(const std::string &cname); void input(int n); …

2025 GODIAG BMW BDC2/BCP Test Platform: Diagnose, Program, Sync Keys for Euro/American BMWs

Streamline BMW BDC2 Diagnostics & Programming with the GODIAG 2025 Platform For BMW technicians, locksmiths, and car owners in Europe and America, managing immobilizer systems, synchronizing keys, …

实验四:组合与继承

任务一:代码:task.cpp:#include <iostream> #include <string> #include "GradeCalc.hpp"void test() {GradeCalc c1("OOP");std::cout << "录入成绩:\n";c1.inpu…

极大连通子图和极小连通子图

目录1. 基本概念与前提2. 极大连通子图3. 极小连通子图4. 对比表格5. 重要关系总结首先明确一个核心:这两个概念都是在讨论“连通性”这个属性下的“极大”和“极小”。1. 基本概念与前提子图: 从原图中选取一些顶点…

2025百度爱采购服务商推荐3家靠谱品牌解析

2025百度爱采购服务商推荐3家靠谱品牌解析根据艾瑞咨询《2025年中国B2B电商行业发展报告》显示,2025年中国B2B电商交易规模达38.5万亿元,同比增长10.2%;百度爱采购作为B2B核心流量入口,全年服务企业超300万家,同比…

论文写得慢还易重复?学术AI助手帮你省80%时间

一、场景:大学生的论文写作“连环愁” “哪些AI写作软件适合大学生?”“快速写论文的AI写作工具有哪些?”“解决写作效率低的AI写作工具推荐”——每次临近论文提交,这些问题就会挤满我的咨询后台。上周刚接到某高…

九、一个AXIDMA的驱动示例

一、概述适配环境是ZYNQ系列板卡+AXIDMA的IP核,缺点是把所有的AXIDMA都抽象成了一个字符设备,并且只能独占访问,对于采用多个AXIDMA传输数据的情况不太友好 具体代码在https://github.com/bperez77/xilinx_axidma.g…

【机器视觉通用检测框架】基于VS2019 C#+VisionPro9.0开发的视觉框架软件,全套源码,开箱即用 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年最新!新疆建筑企业资质代办服务机构分析与选择参考

在新疆建筑市场快速发展、行业规范日益完善的背景下,建筑企业资质办理成为关乎合规运营与市场准入的重要环节。然而,许多企业反映在资质申报过程中面临政策理解不清、流程复杂、审批周期长等实际困难。为帮助企业更清…

09.注解Plus

1.运行时注解及反射配合 2.没有标题,好好看 Class.getMethods() //仅获取本类所有公共方法(含继承) Class.getDeclaredMethods() //获取本类所有方法(含私有、保护、公共,但不会继承)以上返回的是本类中的所有方…

交叉编译GDB调试

交叉编译GDB调试 1. 下载GDB源码 GDB下载地址 2. 编译指定平台GDB # 按自己下的版本修改后缀 tar zxvf gdb-7.12.tar.gz cd gdb-7.12.tar.gz# 生成makefile cd .. mkdir gdb_install && cd gdb_install # 格式…

2025 铝合金门窗十大品牌权威榜:五维实测甄选行业标杆

本次十大铝合金门窗品牌评选基于严谨的科学体系和数据支撑,采用 “五维评分模型”,各维度权重与考核重点经过多轮行业专家论证,确保评选结果的客观性与专业性。技术创新维度占比 30%,涵盖核心专利数量、智能化技术…

编程题库 No.16 加班薪水UP

题目:某家公司规定:如果员工每周的工作超过了40小时,那么多余的工作时间支付其1.5倍的薪水。阿倩每小时的薪水是50元,她一周工作了55小时,那么阿倩这周的工资应该为多少呢? 定义一个函数pay_week(),传入参数hou…

AI元人文:在档口前构筑公平排队的文明舞台

AI元人文:在档口前构筑公平排队的文明舞台 从混乱拥挤到有序协作,排队这一日常小事揭示了价值原语在公共空间中的微观运作机制。 在熙熙攘攘的小吃店门口,人群自然地排成一列。当一位孕妇悄然走到队伍前端时,并没有…

敏捷冲刺随笔-6

| 这个作业属于哪个课程 | https://edu.cnblogs.com/campus/gdgy/Class34Grade23ComputerScience | | 这个作业要求在哪里| https://edu.cnblogs.com/campus/gdgy/Class34Grade23ComputerScience/homework/13483 | | 这…

SvelteKit 开发实战:拥抱 Web 标准 (Web Standards)

在目前的前端生态中,SvelteKit 选择了一条“返璞归真”的路线:不重复造轮子,直接使用平台能力(Use the Platform)。 这意味着,SvelteKit 的核心并非由复杂的私有 API 堆砌而成,而是构建在标准的 MDN Web APIs 之…

百练PKU / 2024计算机学院推免上机考试考情分析与备考建议

📘 题目分析总表(A–H)百练地址统一格式:http://bailian.openjudge.cn/tm2024cs/题号/ (示例:A 题对应 http://bailian.openjudge.cn/tm2024cs/A/)✔ 表:题目分析总表(A–H)题号 题目名称 百练链接 通过率 …

详细介绍:css学习盒模型:

详细介绍:css学习盒模型:pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", …

python题库 No.17 大运预选

题目:大运预选 成都大运会预选赛,某田径队要选拔选手参赛,定义函数match(),传入参数time和gender,若百米赛跑时间time小于等于11秒时,则判断性别,否则输出"继续努力,争取下次参赛!"。若性别gender为…