浮点表示,整数位和小数位

时间:2014-09-21 00:23:49

标签: mysql floating-point

8位整数位和2位小数位,即00011001和10意味着25.75?考虑2s补码格式编码。

为了解决这个问题,我必须从哪里开始?

1 个答案:

答案 0 :(得分:0)

二进制中的小数以与它们在十进制,八进制或十六进制(或任何)数字系统中类似的方式工作,因为小数点后面的每个数字(或二进制/八进制/十六进制点)都带有自己的值。

在十进制中,我们说小数点右边的第一个数字值为1/10(或1x10 ^ -1),第二个数值为1/100(或1x10 ^ -2)。

在二进制文件中,不是使用10,而是使用2,因此二进制点之后的第一个数字值为1/2(或1x2 ^ -1),第二个数值为1 / 4(也写成1x2 ^ -2),每个'列的指数减1。在右边。

要转换您的示例,第一个基本步骤是计算列值,然后我们只需将原始二进制数中存在1的每个值相加(我添加了一些额外的数字到帮助解释的例子:

 Binary:     1    1    0    0    1    .    1     0      0       0     
 Value:     16    8    4    2    1    .    0.5   0.25   0.175   0.0625
          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
             |    |    x    x    |    .    |     x      x       x
 Decimal:   16  + 8  +   +    +  1    . +  0.5 +     +      +  

二进制数11001.10 = 25.5(十进制)

遗憾的是,您的问题有点不清楚,所以我希望这是您正在寻找的答案,如果没有,请为您的问题进一步澄清。