32位的int型与double型表示的数值范围为何不一样?

 我来答
unsamesky
2016-09-19 · TA获得超过2736个赞
知道小有建树答主
回答量:859
采纳率:100%
帮助的人:440万
展开全部
int表示整数,Double表示双精度浮点数
1、int
同样的32位,如果表示整数也就是没有小数位,那么可以表示的整数范围大约是 ±2的31次方-1,差不多就是int的表示范围;
2、Double
而对于浮点数,比如根据IEEE754浮点数表示方法中规定了,32位浮点数,第1位是符号位,第2到9位(共8位)表示阶码,剩下23位表示尾数。
那什么是阶码?比如,我们一个十进制数123可以表示为1.23X10的2次方,那么这里的2次方就可以理解为阶码。
那么8个bit的数位,可以表示多大的阶码呢?阶码也是有符号位的,那么8个bit的有符号位的数的取值范围是-127到128之间,而阶码是以2为底数的,所以阶码值-127就表示2的-127次方,就表示很小很小的一个小数了,而+128就表示2的128次方这么大的数了。
浮点数的尾数左边隐含一个数字1,也就是1.000...000(23个0)到1.111...111(23个1)二进制数表示的小数,差不多理解为1.00000到1.999999之间的十进制小数。
因此:浮点数就可以表示为 (2的-127次方)*1.x 到 (2的128次方)*1.x,大约是1.7*10的-38次方 到 3.4*10的38次方。
(因为涉及到反码和补码等的转换,以上数值均为约数,不能作为正式的参考,只是让你理解一下32位为什么表示的整型数和浮点数范围差别会那么大。不知道我说的是不是正确的,但是大致意思如此,你要完全弄清楚,可以查看一下IEEE754浮点数的表示规则。)
追答
int表示整数,Double表示双精度浮点数。
1、int
同样的32位,如果表示整数也就是没有小数位,那么可以表示的整数范围大约是 ±2的31次方-1,差不多就是int的表示范围;
2、Double
而对于浮点数,比如根据IEEE754浮点数表示方法中规定了,32位浮点数,第1位是符号位,第2到9位(共8位)表示阶码,剩下23位表示尾数。
那什么是阶码?比如,我们一个十进制数123可以表示为1.23X10的2次方,那么这里的2次方就可以理解为阶码。
那么8个bit的数位,可以表示多大的阶码呢?阶码也是有符号位的,那么8个bit的有符号位的数的取值范围是-127到128之间,而阶码是以2为底数的,所以阶码值-127就表示2的-127次方,就表示很小很小的一个小数了,而+128就表示2的128次方这么大的数了。
浮点数的尾数左边隐含一个数字1,也就是1.000...000(23个0)到1.111...111(23个1)二进制数表示的小数,差不多理解为1.00000到1.999999之间的十进制小数。
因此:浮点数就可以表示为 (2的-127次方)*1.x 到 (2的128次方)*1.x,大约是1.7*10的-38次方 到 3.4*10的38次方。
(因为涉及到反码和补码等的转换,以上数值均为约数,不能作为正式的参考,只是让你理解一下32位为什么表示的整型数和浮点数范围差别会那么大。不知道我说的是不是正确的,但是大致意思如此,你要完全弄清楚,可以查看一下IEEE754浮点数的表示规则。)
放猫抓老虎
2016-09-19
知道答主
回答量:5
采纳率:0%
帮助的人:5277
展开全部
int与doule在不同的系统数值范围不一样,有的系统int是16位,double是32位,有的系统int是32位,double是64位。但是同一系统中int与double数值范围肯定不一样的。
追问
但是32位的double和int表示数值范围也不一样
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
男人不容易才
2016-09-19
知道答主
回答量:6
采纳率:0%
帮助的人:6323
展开全部
十根手指有长短啊
追问
理解不能。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式