banner
All for one,one for all.

补码

Scroll down

作者:Liew.Y
AIGC声明:部分使用AIGC

  • 对于正数,补码与原码相同的。

  • 负数在计算机中是使用其补码来表示的

  • 对于负数,补码是将原码的符号位保持不变,数值位按位取反后加1

1
2
3
原码:10000001
补码:Step1:11111110
Step2:11111111

在计算机中,反码(One’s Complement) 是一种数值的二进制表示方法,常用于辅助补码的计算。它的规则相对简单,但存在一些局限性。以下是关于反码的详细说明:

一、反码的定义与计算规则

1. 正数的反码

与原码相同,即 符号位为 0,数值位不变
示例

  • 十进制数 +5(4 位)的原码和反码均为:0101

2. 负数的反码

符号位为 1,数值位按位取反(0 变 1,1 变 0)
示例

  • 十进制数 -5(4 位)的原码为 1101,反码为 1010(符号位不变,数值位 101 → 010)。

二、反码的特点

  1. 存在 “负零” 问题

    • 十进制 0 的反码有两种表示:
      • +0 的反码:0000(4 位)。
      • -0 的反码:1111(4 位)。
    • 这会导致逻辑判断混乱(例如 0000 和 1111 都表示 0),因此反码在实际计算机中很少直接使用,而是作为补码的中间步骤。
  2. 取值范围

    • n 位反码的取值范围为:
      -(2^{n-1}-1) ~ +(2^{n-1}-1)
    • 示例(4 位)
      • 最小值:1111(反码)→ 对应十进制 -7
      • 最大值:0111(反码)→ 对应十进制 +7
其他文章
请输入关键词进行搜索