Skip to content

刷题笔记:定点数补码表示与转换

1. 题目要求

题目背景:字长为 8 位(含 1 位符号位)。 题目目标:求下列数值的原码反码补码

  • 整数:0, -0, 1101, -1101
  • 小数:0.1000, -0.1000, 0.1111, -0.1111

2. 核心知识点总结

A. 符号位规范

  • 正数:符号位为 0
  • 负数:符号位为 1
  • 分隔符:整数通常用逗号 , 隔开,小数通常用小数点 . 隔开。

B. 转换逻辑(重点)

  1. 正数:三码合一(原码 = 反码 = 补码)。
  2. 负数
    • 反码:原码符号位不变,数值位按位取反。
    • 补码:在反码末位加 1。
    • ⚡ 快捷算法(灵动转换):从原码右端向左找第一个 1,该 1 及其右边的 0 保持不变,左边(除符号位外)数值位全部取反。

C. 特殊值:0 的表示

  • 原码/反码[+0][0] 有两种形式。
  • 补码[+0][0] 形式唯一,均为全 0

3. 典型题解示例

数值原码反码补码
00,00000000,00000000,0000000
-01,00000001,11111110,0000000
11010,00011010,00011010,0001101
-11011,00011011,11100101,1110011
0.10000.10000000.10000000.1000000
-0.10001.10000001.01111111.1000000
-0.11111.11110001.00001111.0001000

4. 深度思考:整数与小数的共通性

8位整数补码循环圆环 (模 256)

0326496-128-96-64-32正数区负数区
模运算逻辑
[x]补 = M + x

零点 (0000 0000)

正负在此汇合,补码唯一

溢出点 (1000 0000)

从 +127 跨越到 -128

补码的本质是模运算 (Modular Arithmetic)

  • 共通公式:对于负数,$ [x]_补 = 模 + x $。
  • 模定义:定点整数模为 2n,定点小数模为 2
  • 灵动之处:补码将符号位真正"数值化",其权重在小数中为 1,在整数中为 2n1。这使得计算机可以用同一套加法器逻辑处理正负数运算,无需额外设计减法器。