星

星尘客栈-笔记站

A text-focused Halo theme

  • 首页
  • 标签
  • 分类
  • 关于本站
主页 原码反码和补码
文章

原码反码和补码

发表于 6天前 更新于 6天前
作者 Ruibin_Ningh
63~81 分钟 阅读

随便记一下,因为过于简单直接复制AI生成的


🟢 1. 原码(sign-magnitude)

  • 规则:最高位是符号位,其余位表示数值的绝对值。

    • 最高位 0 → 正数

    • 最高位 1 → 负数

  • 举例(8位):

    • +5:0000 0101

    • -5:1000 0101

👉 好处:直观,人类看一眼就懂。 👉 缺点:运算复杂,负数的加减法不好算。


🟡 2. 反码(ones’ complement)

  • 规则:

    • 正数:和原码一样。

    • 负数:符号位不变,数值位逐位取反(0 ↔ 1)。

  • 举例(8位):

    • +5:0000 0101

    • -5:1111 1010 (因为 0000 0101 逐位取反)

👉 好处:加减法比原码方便些。 👉 缺点:存在 “正零 0000 0000” 和 “负零 1111 1111” 两种零,很尴尬。


🔴 3. 补码(two’s complement)

  • 规则:

    • 正数:和原码一样。

    • 负数:在反码的基础上 +1。

  • 举例(8位):

    • +5:0000 0101

    • -5:1111 1011 (反码是 1111 1010,再 +1)

👉 好处:

  • 只有一个零(0000 0000),不会重复。

  • 加减法完全可以当“无符号数加法”来做,硬件实现最简单。 👉 所以现代计算机几乎都用补码。


✨ 三者对比总结

表示法

+5

-5

特点

原码

0000 0101

1000 0101

简单直观,运算复杂

反码

0000 0101

1111 1010

两个零,运算方便一点

补码

0000 0101

1111 1011

统一一个零,运算最方便(通用)


许可协议:  CC BY 4.0
分享

相关文章

下一篇

数学中的逻辑运算符

上一篇

最近更新

  • 原码反码和补码
  • 数学中的逻辑运算符
  • 位运算
  • 线段树模版
  • 最近公共祖先

热门标签

oi 线段树 技巧 树上问题 位运算

目录

©2025 星尘客栈-笔记站. 保留部分权利。

使用 Halo 主题 Chirpy