定义整形变量int,系统给他们各分配2字节的存储空间,其数值范围为:--32768~32767,范围是如何得的?

定义长整形变量,系统给他们各分配4字节的存储空间,系统给他们各分配4字节的存储空间,其数值范围为:—2的31次方~(2的31次方减去1)。定义单精度实型变量,系统给他们各... 定义长整形变量,系统给他们各分配4字节的存储空间,系统给他们各分配4字节的存储空间,其数值范围为:—2的31次方~(2的31次方减去1)。
定义单精度实型变量,系统给他们各分配4字节的存储空间,其数值范围为:—3。4*10的负38次方到3.4*10的38次方,有效数值为6~7位。
定义双精度实型变量,系统给他们各分配8字节的存储空间,其数值范围为:负1.7*10的负308次方到1.7*10的308次方,有效数字15~16位。
范围与有效数字是如何得到的?
展开
 我来答
百度网友ef20121
2011-01-26 · TA获得超过363个赞
知道小有建树答主
回答量:260
采纳率:0%
帮助的人:232万
展开全部
范围:一个字节是8位二进制数,长整形变量系统分配4字节,就是分配了4×8位二进制数,数值范围就是:—2的31次方。其他的类似。

有效数字:

浮点数7位有效数字。
双精度数16位有效数字。

C/C++中浮点数的表示遵循IEEE 754标准。
一个浮点数由三部分组成:符号位S、指数部分E(阶码)以及尾数部分M(如下)。
Floating
S--------E-------M
1位-----8位-----23位

Double
S--------E-------M
1位-----11位----52位

十进制数的换算计算公式为(n^m表示n的m次幂,B表示前面的数字是二进制):

S * 2^(E-127) * (1.M)B

浮点数的精度取决于尾数部分。尾数部分的位数越多,能够表示的有效数字越多。

单精度数的尾数用23位存储,加上默认的小数点前的1位1,2^(23+1) = 16777216。因为 10^7 < 16777216 < 10^8,所以说单精度浮点数的有效位数是7位。

双精度的尾数用52位存储,2^(52+1) = 9007199254740992,10^16 < 9007199254740992 < 10^17,所以双精度的有效位数是16位。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式