计算机系列之大话原码、补码、反码、移码

5、大话原码、补码、反码、移码

在这里插入图片描述

原码 = 最高位 + 低位(7位二进制数),

最高位 0 表示正数,1表示负数

低位即该数字的二进制数

7 的原码 00000111

-7 的原码 10000111

0000111 为 7 的二进制数(七位二进制数)

正数的反码 = 原码

负数的反码 = 除最高位,其余位(低位)取反即可。

-7 的原码 10000111,反码为: 11111000

正数的补码=原码

负数的补码 = 反码 + 1

-7 的原码 10000111,反码为: 11111000,补码为 11111001

正数、负数的移码 = 补码最高位取反

-7 的原码 10000111,反码为: 11111000,补码为 11111001,移码为 01111001

表示范围:

记住原码的,然后推导即可:

原码的表示范围为 -127-127,即:1111 1111 - 0111 1111

原码、反码、补码、移码的最高位表示符号,不代表范围、数值等含义,仅代表符号(正负)。

64 + 32 + 16 + 8 + 4 + 2 + 1 = 127

原码的优点是直观,缺点是加法、减法运算复杂,需要额外的规则来处理符号位;

反码的优点是加减法运算规则简单,只需对应位相加并进位,缺点是反码存在两个零值:正零和负零;

补码的优点是只有一个零值,可以直接进行加减运算,而不需要额外的规则,可以通过减法运算实现加法,从而简化了计算机的逻辑电路设计;

移码的主要用途是在浮点数中对指数部分进行表示,使得指数部分可以用带符号数进行表示和运算,方便了浮点数的处理和运算。

码制定点整数
原码-127 ~ 127
反码-127 - 127
补码-128 - 127
移码-128 ~127

在这里插入图片描述

阶符 表示 阶码的正、负,阶码本身是整数

数符 表示 尾数 的正、负,尾数本身是小数

N = 2E * M,E 为 阶码,M 为 尾数,2称为阶码的底

比如 123456 = 1.23456 * 105

r: 10,E:5,M:1.23456

问题:

某个机器的浮点数表示格式如下(允许非格式化表示)。若阶码以补码表示,尾数以原码表示,则 1 0001 0 0000000001 表示的浮点数是()

在这里插入图片描述

1 0001 0 0000000001

在这里插入图片描述

阶码以补码表示,则:1 0001 为补码,最高位 1 为 阶符,表示负数。

则需要求改补码的原码:补码的补码 = 原码

1 0001 的反码:负数的反码 = 除最高位,其余位取反,所以 1 0001 的反码 =》1 1110 =》1 1110 的补码:负数的补码 = 反码 + 1 => 1 1110 的补码 =》 1 1111

所以 1 0001 (为补码)的原码就是 1 1111,所以阶码为:-(8 + 4 + 2 + 1) = -15

尾数以原码表示,所以尾数的二进制为 0 0000000001,原码对应的二进制数字为(尾数为小数):十位,就是 0 * 2-1 + 0 * 2-2 + … + 1 * 2-10

所以答案是:

2-15 * 2-10

同理的题目:

设 16位浮点数,其中阶符 1位,阶码值 6 位,数符 1 位,尾数 8 位。若阶码用移码表示,尾数用补码表示,则浮点数所能表示的数值范围:

????

  • 23
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

碳学长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值