什么是C语言中的精度,与位数有什么差别

来源:百度知道 编辑:UC知道 时间:2024/06/25 00:39:52
刚学C,书中说float 与double分别是6位与16位精度,但他们的位数不是特别大吗(3.4E38;1.7E308),另外,书上说还有一位符号位,所以其实可以接收7位,17位数字,这又是什么意思?
拜托,多谢了

系统把一个浮点型数据分成小数部分和指数部分分别存放的,第一位是用来存放符号的,接下来是小数部分,最后是指数部分,而精度指的是小数部分的占的位数。
一个float是32位的,符号占一位,有效数字(即小数部分)占6位,剩下的是指数部分的位数,所以他的最大值可以是3.4E38。
一个double是64位的,符号占一位,有效数字占15位,剩下的是指数部分的位数,所以他的最大值能达到3.4E308
123456.7890000如果是用float类型的话,小数点后面都是无意义的,因为float接受7位的,而后面部分已经超过7位了,不能准确 的表示出来,所以这里的接受是指能正确表达小数的7位有效数字


别把计算机中的位和数学中位的概念混淆了

6位和16位精度指的是数学中小数点后6位和小数点后16位

符号位指的是计算机中的位,即变量的第一个位(BIT)代表正数还是负数

hehe ```有些编译系统支持6位,有些7位嘛。建议你买本谭浩强的C语言程序设计看看,一看你就什么都明白了