定点数的表示“原码”“补码”“反码”and“移码”

如何将一个数存进计算机,此数的真值为-101.5,我们需要考虑什么? 需要考虑三个问题:①符号位“-”;②数码==“1015”;③小数点

符号位的处理:
无符号

  • 无符号数:整个机器字长的全部二进制位均为数值位,没有符号位,相当于数的绝对值。
  • 若机器字长为8位,则数的表示范围为0~(2^8-1),即0 ~ 255

有符号

  • 有符号数:将符号数字化,0表示正号,1表示负号。
  • 符号数的表示方法:原码、补码、反码。
相关概念
概念解析
真值用正负号表示正数和负数,这样的数值称为真值
机器数用1位数码0或1表示正数和负数,这样的数值称为机器数
原码1表示正数,0表示负数;有效值用二进制的绝对值表示
补码正数的补码=原码,负数的补码符号为“1”,数值部分取反+1
反码正数的反码=原码,负数的反码符号为“1”,数值部分取反

①三种码的转换

例:设x=-1101,那么[x]原、[x]补、[x]反分别为?并且将[x]补转换为[x]原?
[x]原=1,1101
[x]补=1,0011
[x]反=1,0010

[x]补=1,0011除了符号位外各位取反+1,得1,1101=[x]原

②[0]原、[0]补、[0]反

+0-0
[+0.0000]原=[0.0000][-0.0000]原=[1.0000]
[+0.0000]补=[0.0000][-0.0000]补=[0.0000]
[+0.0000]反=[0.0000][-0.0000]反=[1.1111]

综上所述:“0”的原码和补码均有两种,而补码只有一种。移码也仅有一种。

③已知[x]补,求[-x]补

例:已知[x]补=1.0010010,求[-x]补?
首先将1.0010010连同符号位取反,得到0.1101101,然后加上1,得到[-x]补=0.1101110

无论真值是正数还是负数,只要将[x]补连同符号位在内取反,末位+1,即可得到[-x]补。

无符号数与有符号数的范围区别
同样的一个字节,无符号数的最大值为255,而有符号数的最大值为127,原因是有符号数的最高位被挪去当作符号。

x范围
无符号数x0≤x≤255
有符号数x-128≤x≤127

⑤移码:移码(又叫增码)是符号位取反的补码
缘由:用补码表示阶码的时候,当阶码无限小,产生了下溢的时候,阶码变成了0,那么这个浮点数的值变为了1。

假设补码的符号位为0,加上2^n,则0就变成了1;
如果补码的符号位是1,加上2^n,则变成10,由于最高符号位进位需要舍弃,因此又变成了0.

此次分享就到这里,欢迎大家指导指正~ 我是爱吃肉的小白yyyloki,如果你觉得不错的话点个赞👍吧!我们下次见~886

在这里插入图片描述

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值