什么是移码?

目录

移码的原理

具体例子

4位移码(Excess-7 Code)

8位移码(Excess-127 Code)

移码的特点 

原码、补码、反码和移码这 4 种编码表示的总结如下:

移码的应用


移码(Excess-N Code)是一种用于表示有符号数的编码方式。与原码、补码和反码不同,移码通过将数值偏移一个固定的量,使其转换为非负数来表示。移码的主要目的是简化计算机中有符号数的表示和比较操作。

移码的原理

移码的基本原理是将每个数值加上一个固定的偏移量,使其范围从负数变为非负数。这个固定的偏移量通常选择为表示范围的一半,这样负数和正数的分界线就落在0的位置。

对于一个n位的移码表示方法,偏移量通常选择为 2^(n-1)。例如,对于一个4位的移码表示,偏移量为 2^(4−1)=8。

 

具体例子

4位移码(Excess-7 Code)

  • 4位的二进制数可以表示的范围是 -8~7 。
  • 移码选择偏移量为8,即 2^(4−1) = 8。
  • 所有数值都加上这个偏移量,以便得到移码表示。
十进制数移码
-80000
-70001
-60010
-50011
-40100
-30101
-20110
-10111
01000
11001
21010
31011
41100
51101
61110
71111

8位移码(Excess-127 Code)

  • 8位的二进制数可以表示的范围是-128到127。
  • 移码选择偏移量为128,即 2^(8−1)=128。
  • 所有数值都加上这个偏移量,以便得到移码表示。
十进制数移码(二进制)
-12800000000
-12700000001
......
-101111111
010000000
110000001
......
12611111110
12711111111

移码的特点 

1.移码中零的表示唯一;[+0]移 = 2^n + 0 = [-0]移 = 2^n - 0 = 100…0(n个“0”)。

2.一个真值的移码和补码仅差一个符号位,[x]移的符号位取反即得[x]补。(“1”表示正,“0”

表示负,这与其他机器数的符号位取值正好相反),反之亦然。

3.移码全0时,对应真值的最小值-2^n;移码全1时,对应真值的最大值2^n-1。

4.移码保持了数据原有的大小顺序,移码大真值就大,移码小真值就小。

原码、补码、反码和移码这 4 种编码表示的总结如下:

1.原码、补码、反码的符号位相同,正数的机器码相同。

2.原码、反码的表示在数轴上对称,二者都存在+0和-0两个零。

3.补码、移码的表示在数轴上不对称,零的表示唯一,它们比原码、反码多表示一个数。

4.整数的补码、移码的符号位相反,数值位相同。

5.负数的反码、补码末位相差1。

6.原码很容易判断大小。而负数的反码、补码很难直接判断大小,可采用如下规则快速判

   断:对于负数,数值部分越大,绝对值越小,真值越大(更靠近0)。

移码的应用

移码广泛应用于浮点数的表示和计算。在IEEE 754浮点数标准中,指数部分使用移码(通常是Excess-127或Excess-1023)来简化浮点数的比较和计算操作。使用移码可以避免处理负数的复杂性,并且简化了硬件电路的设计。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值