int和long对应4个和8个字节,那么float和double也是4个和8个,在存储时不一样的地方在哪里呢?
答案:1 悬赏:30 手机版
解决时间 2021-01-30 12:27
- 提问者网友:wodetian
- 2021-01-30 05:58
int和long对应4个和8个字节,那么float和double也是4个和8个,在存储时不一样的地方在哪里呢?
最佳答案
- 五星知识达人网友:酒者煙囻
- 2021-01-30 07:25
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):尾数部分
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):尾数部分
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯