单精度和双精度有什么不同?
单精度浮点数和双精度浮点数有以下区别:
1、所占的内存不同
单精度浮点数占用4个字节(32位)存储空间来存储一个浮点数,包括符号位1位,阶码8位,尾数23位。
而双精度浮点数使用 8个字节(64位)存储皮毁空间来存储一个浮点数,包括符号位1位,阶码11位,尾数52位。
2、所存的数值范围不同
单精度浮点数的数值范围为-3.4E38~3.4E38,而双精度浮点数可以表示的数字的绝对值范围大约是:-2.23E308 ~ 1.79E308。E表示10的多少次方,如3.4E38指的是燃棚备3.4乘以10的38次方。
3、十进制下的位数不同
单精度浮点数最多有7位十进制有效数字,如果某个数的有效数字位数超过7位,当把它定义为单精度变量时,超出的部分会自动四舍五入。
双精度浮点数可以表示十进制的15或16位有效数字,超出的部分也会自动四舍五入。
参考资料来源:百度百科-单精度浮点数
参考资料来源:和冲百度百科-双精度浮点数
2024-10-15 广告
1,单精度,也就是 float ,在 32 位机器上用 4 个字节来存储的;而双精度double是用 8 个字节来存储的,这是他们最本质的区别。
2,由于存储位不同,他们能表示的数值的范围就不同,也就是能准确表示的数的位数就不同。
3,单精度小数点后面共能精确到7位小数。双精度可精确到15位小数。
扩展资料:
单精度浮点数用4字节存储,双精度浮点数用8字节存储,分为三个部分:符号位、阶和尾链扮数。阶即指数,尾数即有效小数位数。单精度格式阶占8位,尾数占24位,符号位1位,双精度则为11为阶,53位尾数和1位符号位。
细心的人会发现,单双精度各部分所占字节数量比实际存储格式多了一位,的确是这样,事实是,尾数部分包括了一位隐藏位,允许只存储23位就棚御灶可以表示24位尾数拆念,默认的1位是规格化浮点数的第一位,当规格化一个浮点数时,总是调整它使其值大于等于1而小于2,亦即个位总是为1。
阶以移码的形式存储。对于单精度浮点数,偏移量为127(7FH),而双精度的偏移量为1023(3FFH)。存储浮点数的阶码之前,偏移量要先加到阶码上,浮点数有两个例外。数0.0存储为全零。无限大数的阶码存储为全1,尾数部分全零。符号位指示正无穷或者负无穷。
参考资料:百度百科-单精数
推荐于2017-12-16
2013-06-27