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

13-原码、反码、补码

一.为什么需要这些码

计算机底层只能存储0和1(二进制),那么如何用二进制来表示负数和进行减法运算呢?

人们最初的想法很简单:用比特位来表示正负。这就是原码。但原码在运算时遇到的麻烦,于是发明了补码,它完美地解决了这些问题,并成为现代计算机中整数表示的标准

二.原码

原码是最直观的表示方法

规则:

  • 最高位(最左边的位)为符号位:0表示正数,1表示负数
  • 其余位为数值位:表示该数的绝对值

举例:用一个字节,8位来表示

  • +1:0000 0001
  • -1:1000 0001
  • +0:0000 0000
  • -0:1000 0000

原码的优点:

  • 非常直观,人类容易理解

原码的缺点:

  • 存在”-0“:0000 0000 和 1000 0000都表示0,这在进行逻辑判断时会带来麻烦
  • 运算复杂:计算机的CPU需要设计复杂的电路来处理符号位。例如:1+(-1),用原码计算是0000 0001 + 1000 0001 = 1000 0010   结果是-2,这显然是错误的

为了解决原码的运算问题,人们引入了补码

三.补码

补码是现代计算机中整数的标准存储形式。它巧妙地将减法运算转换为了加法运算

补码的定义和转换规则:

对于一个固定的位数(例如8位):

  • 正数的补码:与其原码相同
  • 负数的补码:由其对应的正数的补码,按位取反(得到反码),然后加1.例如要求-1的补码,先求1的补码(也是1的原码),为0000 0001    然后对它按位取反   得到1111 1110     最后+1得到 1111 1111   那么-1的补码就是1111 1111

举例(8位):

  • +1: 0000 0001

  • -1: 1111 1111

  • +0: 0000 0000

  • -0: 计算 -0 的补码:取反 1111 1111,加1后变成 1 0000 0000,由于只有8位,最高位1被舍弃,结果还是 0000 0000补码中“0”的表示是唯一的!

  0000 0001  (1的补码)
+ 1111 1111  (-1的补码)
---------------
1 0000 0000  (结果)

由于我们只有8位,最前面的1(第9位)会自然溢出被舍弃,剩下的结果就是 0000 0000,也就是 0结果是正确的!

补码的优点:

  1. 统一了0的表示:没有+0和-0之分。

  2. 将减法变为加法:CPU的ALU(算术逻辑单元)只需要设计加法器电路就可以同时处理加法和减法,大大简化了硬件设计。

    • A - B = A + (-B),而 -B 正好就是B的补码。

四.反码

反码可以看作是原码和补码之间的一个过渡产物

规则:

  • 正数的反码:与其原码相同
  • 负数的反码:其原码的符号位不变(也可以看作先求对应正数的原码,然后所有位都取反),数值位按位取反

举例(8位):

  • +1: 原码 0000 0001 -> 反码 0000 0001

  • -1: 原码 1000 0001 -> 反码 1111 1110

反码解决了原码的一部分运算问题,但仍然没有解决“-0”的问题:

  • +0 的反码: 0000 0000

  • -0 的反码: 1111 1111

在现代计算机中,反码本身并不用于直接表示数字,但它是在计算负数补码时的一个重要步骤。

http://www.dtcms.com/a/504718.html

相关文章:

  • 数据压缩与解压
  • 使用MQ解耦点赞通知功能
  • 青岛高品质网站制作window服务器如何做网站访问
  • 机械加工网站易下拉大测网站建设的步骤及方法
  • 《AI的未来:从“召唤幽灵”到学会反思》
  • 特性设计的网站网站建设安全方案
  • 英文公司网站制作wordpress 4.7.1
  • 烟台教育平台网站建设手机网站的尺寸做多大的
  • 获取网站漏洞后下一步怎么做初中做语文题的网站
  • 明星网站策划书阿里云 ip 网站
  • 网站设计昆明ipv6网站建设
  • 数据脱敏:Google DLP API,敏感模式自动识别?
  • 做网站前端用什么技术好网站建设后怎么赚钱
  • 2025-10-19 hetao1733837刷题记录 Ⅱ
  • 网站推广策略与问题分析wordpress 海 主题
  • 音平商城谁做的网站做的好的茶叶网站好
  • 【算法】队列 + 宽度优先搜索
  • 机器学习周报十八
  • C# 参数详解:从基础传参到高级应用
  • 棠下网站建设jsp如何进行购物网站开发
  • 惠州做网站公司部门门户网站建设请示
  • 分析一下Xshell效率实战——SSH管理秘籍
  • 怎么做卖橘子的网站做网站编辑我能力得到提升
  • 支付通道网站怎么做网页设计代码计算器
  • 做价值投资有哪些网站企业集团网站建设与运营
  • 大型网站开发团队分析杭州高端网站建设开发的区别
  • C++深度解析:从核心特性到现代编程实践
  • 电商网站建设优缺点网站 微信 app
  • dw网站开发环境百度大搜
  • 有什么发布做投标报价的网站wordpress 首页添加图片不显示