定点数的表示“原码”“补码”“反码”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 范围
无符号数x 0≤x≤255
有符号数x -128≤x≤127

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

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

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

定点数的表示“原码”“补码”“反码”and“移码”_第1张图片

你可能感兴趣的:(期末值得的计算机组成)