了解二进制编码:原码、反码、补码与移码

了解二进制编码:原码、反码、补码与移码原码 Sign Magnitude 原码是最直观的编码方式 它的最高位是符号位 0 表示正数 1 表示负数 其余位表示数值本身的绝对值

大家好,欢迎来到IT知识分享网。

了解二进制编码:原码、反码、补码与移码

原码(Sign-Magnitude)

原码是最直观的编码方式,它的最高位是符号位(0表示正数,1表示负数),其余位表示数值本身的绝对值。

  1. 表示

原码采用最直观的符号-绝对值表示法:

  • 符号位(最高位):0表示正数,1表示负数
  • 数值位(其余位):存储数二进制形式绝对值

特点

  • 表示范围:-(2^(n-1)-1) 到 +(2^(n-1)-1)
  • 缺陷:存在双零问题,加减运算也需要判断符号位

2. 转换

  • 正数转换:直接转换为二进制,不足位补零
  • 负数转换:取绝对值的二进制形式,最高位 置1,数值位保持原值

3. 示例

十进制

8位原码

计算过程

+7

0000 0111

直接转换7的二进制

-13

1000 1101

1(符号位) + 0001101(13的二进制)

0

0000 0000

0000 0000 或1000 0000

反码(Ones’ Complement)

反码的表示方法对正数和原码相同,而对负数则是将其原码除符号位外的所有位取反。反码的设计初衷是为了解决原码在进行减法运算时的问题,使得任何数与其相反数相加等于零。

1. 表示

反码通过取反操作可以改进运算:

  • 正数:与原码相同
  • 负数:符号位保持1,数值位按位取反

特点

  • 加法需要循环进位:比如 5(0101) + (-2)(1101) = 1 0010 → 0011(3)
  • 表示范围和原码相同,也就是说仍存在双零的缺陷

2. 示例

十进制

原码

反码

转换过程

+9

0000 1001

0000 1001

正数保持原码

-6

1000 0110

1111 1001

符号位1,数值位0110取反

0

0000 0000

1111 1111

仍然存在双零问题

补码(Two’s Complement)

补码是目前计算机系统中普遍采用的编码方式,因为它能简化加法和减法的硬件实现。正数的原码、反码、补码三者相同,而负数的补码则是在其反码的基础上加1。补码的引入,解决了负零的问题,并且能够多表示一个最小值。

  1. 表示

补码有如下公式(数字定义):

了解二进制编码:原码、反码、补码与移码

特点

  • 单零表示:0的补码唯一(00000000)
  • 运算简便:A – B = A + (-B)补
  • 范围:能比原码和补码多表示一个最小值

2. 转换

  • 普通方法
原码 → 补码: 正数:保持原码不变 负数:转换为反码后+1
  • 公式计算法

整数补码 = x
负数补码 = 2^n – |x|

3. 示例

十进制

原码

反码

补码

计算验证

+19

0001 0011

0001 0011

0001 0011

直接保留原码

-7

1000 0111

1111 1000

1111 1001

反码()+1

-128

无法表示

无法表示

1000 0000

2^8 – 128 = 128

移码

移码一般用来比较大小,比如浮点数的阶码会用移码表示,通过移码的表示,较出大小变得简单直观。

1. 表示

移码通过偏移量解决指数比较问题:

– 统一公式:移码 = 真值 + 偏移量(通常为2^(n-1))

– IEEE754 标准中 偏移量为移码形式:单精度 127(8位),双精度 1023(11位)

2. 转换

1. 确定偏移量:一般为 2^(k-1),k为位数 2. 计算移码值:E = 真值 + 偏移量

3. 示例

真值

8位移码(偏移127)

计算过程

二进制

+23

150

23 + 127 = 150

1001 0110

-5

122

-5 + 127 = 122

0111 1010

0

127

0 + 127 = 127

0111 1111

4. 扩展 —— 浮点中移码的应用

以单精度浮点数 1.25×2^5 为例:

  • 指数真值:5
  • 移码表示:5 + 127 = 132 →
  • 完整编码:0 000000000000

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/182147.html

(0)
上一篇 2025-06-30 09:45
下一篇 2025-06-30 10:15

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信