float、double类型的数据在计算机内部的表示法-创新互联

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

成都创新互联公司专注于南岗网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供南岗营销型网站建设,南岗网站制作、南岗网页设计、南岗网站官网定制、小程序定制开发服务,打造南岗网络公司原创品牌,更为您提供南岗网站排名全网营销落地服务。
float a = -12.25;
    unsigned int* p = ( unsigned int* )&a;

    printf ( "0x%08X\n", *p );

    system ( "pause" );
    return 0;

运行结果为:
float、double类型的数据在计算机内部的表示法
运行结果和我们计算的完全一样。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网站题目:float、double类型的数据在计算机内部的表示法-创新互联
文章来源:http://azwzsj.com/article/dsdecp.html