什么是C语言中的精度,与位数有什么差别
刚学C,书中说float与double分别是6位与16位精度,但他们的位数不是特别大吗(3.4E38;1.7E308),另外,书上说还有一位符号位,所以其实可以接收7位,...
刚学C,书中说float 与double分别是6位与16位精度,但他们的位数不是特别大吗(3.4E38;1.7E308),另外,书上说还有一位符号位,所以其实可以接收7位,17位数字,这又是什么意思?
拜托,多谢了 展开
拜托,多谢了 展开
3个回答
展开全部
系统把一个浮点型数据分成小数部分和指数部分分别存放的,第一位是用来存放符号的,接下来是小数部分,最后是指数部分,而精度指的是小数部分的占的位数。
一个float是32位的,符号占一位,有效数字(即小数部分)占6位,剩下的是指数部分的位数,所以他的最大值可以是3.4E38。
一个double是64位的,符号占一位,有效数字占15位,剩下的是指数部分的位数,所以他的最大值能达到3.4E308
123456.7890000如果是用float类型的话,小数点后面都是无意义的,因为float接受7位的,而后面部分已经超过7位了,不能准确 的表示出来,所以这里的接受是指能正确表达小数的7位有效数字
一个float是32位的,符号占一位,有效数字(即小数部分)占6位,剩下的是指数部分的位数,所以他的最大值可以是3.4E38。
一个double是64位的,符号占一位,有效数字占15位,剩下的是指数部分的位数,所以他的最大值能达到3.4E308
123456.7890000如果是用float类型的话,小数点后面都是无意义的,因为float接受7位的,而后面部分已经超过7位了,不能准确 的表示出来,所以这里的接受是指能正确表达小数的7位有效数字
展开全部
?
别把计算机中的位和数学中位的概念混淆了
6位和16位精度指的是数学中小数点后6位和小数点后16位
符号位指的是计算机中的位,即变量的第一个位(BIT)代表正数还是负数
别把计算机中的位和数学中位的概念混淆了
6位和16位精度指的是数学中小数点后6位和小数点后16位
符号位指的是计算机中的位,即变量的第一个位(BIT)代表正数还是负数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
hehe ```有些编译系统支持6位,有些7位嘛。建议你买本谭浩强的C语言程序设计看看,一看你就什么都明白了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询