定点数编码表示

原码表示法

直接将数的二进制进行存储,有符号数需要在首位添加符号位

通常不采用原码表示的原因

  • 原码的0表示不唯一,+0为0000;-0为1000(假设长度为4位)
  • 原码进行加减法运算方式不统一
  • 需要额外对符号位进行处理,不利于硬件设计
  • 当a<b时,a-b实现比较困难
    现代计算机整数一般都用补码表示,

移码表示法

移码是将一个数值加上一个偏置常数,通常当编码位数为n的时候,取偏移常数为\(2^{n-1}\)或者\(2^{n-1}-1\)
当n=4时,移码表示数\(E'=E+2^3\)
-8(+8)~0000B
-7(+8)~0001B
0(+8)~1000B
0的移码表示唯一
当偏置常数为\(2^{n-1}\)时,移码和补码只有第一位不同
移码用来表示浮点数的阶

为什么要用移码表示浮点数的阶

  • 便于浮点数加减运算时的对阶操作

补码-模运算

在一个模运算系统中,一个数与它除以“模”后的余数等价。
在模12系统中:10-4=10+8(mod 12)
称8是-4对12的补码
结论一:一个负数的补码等于模减该负数的绝对值
结论二:对于某一确定的模,某数减去小于模的另一数,总可以用该数加上另一数负数的补码来代替。

一个负数补码等于将对应正数补码(正数补码即为本身)各位取反再加一

如-0000 1000补码为1111 1000

posted @ 2021-09-08 16:20  real010  阅读(302)  评论(0编辑  收藏  举报