float a=1.0f在内存中的表示是3f800000,这个3f800000是怎么得出的?

3f800000H=0 01111111 00000000000000000000000B (注意我分成了三段)
符点型数据在X86机上占四个字节,其存储按IEEE754标准实现,即:
1位的符号位s         0(代表正数,1代表负数)
8位的指数位e(移码表示01111111是0的移码
23位的小数位f  0000000000000000000000 表示小数部分为0
计算机在表示符点数时要将10进制数转成二进制的规范数形式进行存储的。即:1.f*2^e在存储时,小数前面的1是隐式存储的,不体现在数据中。
现在翻译一下:
3f800000H=1.0*2^0=1.0

 

转自:http://blog.sina.com.cn/s/blog_a2aa00d701019z65.html

posted @ 2013-03-24 13:23  石沉溪涧  阅读(685)  评论(1编辑  收藏  举报