c语言浮点型菜鸟教程,C语言菜鸟基础教程之单精度浮点数与双精度浮点数

编程知识 行业动态 更新时间:2024-06-13 00:22:55

上节课 简单介绍了浮点数。计算机程序中的浮点数分为单精度浮点数和双精度浮点数。

单精度和双精度精确的范围不一样。

计算机里的最基本的存储单位用位(bit)来表示。bit只能用来存储0或1。

稍大一点的单位是字节(Byte,简写为B)。

再大一级的是千字节(kilo Bytes),用k来表示。

再大一级的单位是兆字节(Mega Bytes),用M来表示。一张照片的大小通常为1~3M。

再大一级的单位为G。一部高清电影的大小通常为1~2G。

再大一级的单位为T。

换算关系为:

1B = 8bit

1k = 1024B = 2^10 B

1M = 1024k = 2^20 B

1G = 1024M = 2^30 B

1T = 1024G = 2^40 B

单精度(float)在计算机中存储占用4字节,32位,有效位数为7位(6位小数+小数点)。

双精度(double)在计算机中存储占用8字节,64位,有效位数为16位(15位小数+小数点)。

不管是float还是double,在计算机中的存储都遵循IEEE规范,使用二进制科学计数法,都包含三个部分:符号位、指数位和尾数部分。其中float的符号位、指数位(即整数部分)、尾数部分分别为1,8,23。双精度则分别为1,11,52。

float

double

精度主要取决于尾数部分的位数,float为23位,最小为2的-23次方,约等于1.19乘以10的-7次方,所以float小数部分只能精确到后面6位,加上小数点算做一位,即有效数字为7位。

类似,double 尾数部分52位,最小为2的-52次方,约为2.22乘以10的-16次方,所以精确到小数点后15位,有效位数为16位。

程序验证:

#include

int main()

{

float a = 1.123456789;

printf("a = %20.9f\n",a);

double b = 2.123456789;

printf("b = %20.9f\n",b);

return 0;

}

注意:这里%20.9f表示浮点数总共有20位,其中小数占9位。不足20位的部分,左侧用空格来填充。

运行结果:

a = 1.123456836

b = 2.123456789

从运行结果可以看出,单精度浮点数小数部分只有前6位是准确的,后三位是不准确的。双精度小数部分9位都是准确的。

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

小编个人微信号 jb51ccc

喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!

更多推荐

c语言浮点型菜鸟教程,C语言菜鸟基础教程之单精度浮点数与双精度浮点数

本文发布于:2023-04-03 13:53:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/f1e1bdd1b6f896b69f7c4ba7e790332e.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:菜鸟   精度   语言   浮点数   浮点

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!