• 首页
        • 更多产品

          客户为中心的产品管理工具

          专业的软件研发项目管理工具

          简单易用的团队知识库管理

          可量化的研发效能度量工具

          测试用例维护与计划执行

          以团队为中心的协作沟通

          研发工作流自动化工具

          账号认证与安全管理工具

          Why PingCode
          为什么选择 PingCode ?

          6000+企业信赖之选,为研发团队降本增效

        • 行业解决方案
          先进制造(即将上线)
        • 解决方案1
        • 解决方案2
  • Jira替代方案
目录

反码补码原码怎么转换

原码、反码、补码是计算机中表示有符号整数的三种方式,它们之间有一定的转换规则,比如原码转反码:如果是正数,不变;如果是负数,除了符号位外,其余位取反;反码转原码:如果是正数,不变;如果是负数,除了符号位外,其余位取反;原码转补码:如果是正数,不变;如果是负数,除了符号位外,其余位取反后加一等。

本文将介绍这三种方式的定义和转换方法,并给出一些例子。

一、什么是原码

原码是最直观的表示方式,就是将一个有符号整数的符号位和数值位按照顺序存储在计算机中。符号位通常是较高位,0表示正数,1表示负数。数值位就是该整数的绝对值的二进制形式。例如,8位二进制数可以表示-127到127之间的整数,其中00000000表示0,00000001表示1,01111111表示127,10000000表示-0,10000001表示-1,11111111表示-127。

二、什么是反码

反码是对原码进行按位取反的操作,但是符号位不变。也就是说,正数的反码和原码相同,负数的反码是除了符号位之外的其他位取反。例如,8位二进制数的反码表示如下:

00000000(原码) -> 00000000(反码)
00000001(原码) -> 00000001(反码)
01111111(原码) -> 01111111(反码)
10000000(原码) -> 11111111(反码)
10000001(原码) -> 11111110(反码)
11111111(原码) -> 10000000(反码)

三、什么是补码

补码是在反码的基础上加1的结果,也就是说,正数的补码和原码相同,负数的补码是在其反码的最低位加1。例如,8位二进制数的补码表示如下:

00000000(原码) -> 00000000(补码)
00000001(原码) -> 00000001(补码)
01111111(原码) -> 01111111(补码)
10000000(原码) -> 10000000(补码)
10000001(原码) -> 11111111(补码)
11111111(原码) -> 10000001(补码)

相关文章