浮动,两类型的数据在计算机内部的表示法

  

由于浮点数和双精度数类型的数据在内存中的保存形式是一样的,只是双表示的范围更大而已。因此,这里只介绍浮动的表示方法.double同理。
假设,我现在有一个数据-12.25。那么这个数据在计算机内部是如何存储的呢?
首先,将这个浮点数转换成二进制数。经过转换,得到的二进制数为:1100.01。
接着,将这个二进制数用科学计数法来表示,1.10001 * 2 ^ 3。
由于这个数是负数,所以,符号位为1;指数位为127 + 3=130;尾数(小数)为10001年。
然后,将指数130转换为二进制数10000010。
最后,由于浮动占4个字节,也就是32位,所以,在-12.25内存中表示为:
11000001010001000000000000000000,将这个数用十六进制表示为0 xc1440000。
那么,我们的计算结果对不对呢?我们可以用程序来验证一下。

  
 <代码>浮动=-12.25;
  unsigned int * p=(unsigned int *),一个;
  
  printf (" 0 x % 08 \ n”, * p);
  
  系统(“暂停”);
  返回0; 
  

运行结果为:
浮动,两类型的数据在计算机内部的表示法”> <br/>运行结果和我们计算的完全一样。</p><h2 class=浮动,两类型的数据在计算机内部的表示法