int和long对应4个和8个字节,那么float和double也是4个和8个,在存储时不一样的地方在哪里呢?

 我来答
sunyanming41
2010-08-24
知道答主
回答量:23
采纳率:0%
帮助的人:0
展开全部
int和long:
long类型的数所占的内存空间为4个字节
而int型的数占的内存空间在16位系统里是2个字节,在32位系统里是4个字节
sizeof(short) <= sizeof(int) <= sizeof(long)

编译器不一样有时候int和long所占的字节数也不一样,最好根据自己使用的环境和编译器而定。

float和double:
简单来说,Float为单精度,内存中占4个字节,有效数位是7位(因为有正负,所以不是8位),在我的电脑且VC++6.0平台中默认显示是6位有效数字;double为双精度,占8个字节,有效数位是16位,但在我的电脑且VC++6.0平台中默认显示同样是6位有效数字(见我的double_float文件
对于浮点类型的数据采用单精度类型(float)和双精度类型(double)来存储,float数据占用32bit, double数据占用64bit.
不论是float还是double在存储方式上都是遵从IEEE的规范 的,float遵从的是IEEE R32.24 ,而double 遵从的是R64.53。

无论是单精度还是双精度在存储中都分为三个部分:

符号位(Sign) : 0代表正,1代表为负
指数位(Exponent):用于存储科学计数法中的指数数据,并且采用移位存储
尾数部分(Mantissa):尾数部分
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式