float:1bit(符号位)+8bit(指数位,范围-128~127)+23bit(尾数位)

double:1bit + 11bit + 52bit

例:8.25(十进制) -----> 1000.01(二进制)   //1x2^3 +1x2^(-2)=8.25

------>(1.00001) x2^3-------->(1x2^0+1x2^(-5))x2^3 = 1x2^3 +1x2^(-2)=8.25

在内存中的表示:

0 3 0001

也就是(1.00001) x2^3,前面的1被预定,也就都是1。

所以float的极值问题:

正最大值:(1.111...11)x2^127=(1x2^0+ 1x2^(-1) + ... +1x2^(-23))x2^127 ≈ 2x2^127= 2^128≈ 3.4x10^38。

其中(1.111...111)的小数位是满23位。

正最小值可能:(1.0...0)x2^(-128)=2^(-128)≈ 2.9x10^(-39)。

负最大值可能:-(1.0...0)x2^(-128)=-2^(-128)≈ -2.9x10^(-39)。

负最小值:-{(1.111...11)x2^127}=-{(1x2^0+ 1x2^(-1) + ... +1x2^(-23))x2^127 }≈ -2x2^127= -2^128≈- 3.4x10^38。

注:0可以赋值给float变量,但存储时不为0,因为不精确,可能为(正最小值、负最大值、或其他值)。取出后,精度要求6(7)位,则为0.000000f。

例:当一个float变量和0比较时的程序为下,不应该直接比较。

//#include <stido.h>

float a1=-0.000001,a2=0.000001;

float b=0;

int Compare_floatandzore()

{

if(b>=a1 && b=<a2)

printf("b等于0");

return 1;

else

printf("b不等于0");

return 1;

}

c语言float,double类型的理解相关推荐

  1. 转载——C语言中float,double类型,在内存中的结构(存储方式)

    最近在做一个数据格式分析和转换的项目,第一次接触底层的二进制代码存储,看的一头雾水,看到这个帖子后对于在Windows系统下数据的存储方式有了更多的了解,将原文分享一下: 原文地址为http://ww ...

  2. c语言double最大整数最小正数,用C语言输出DOUBLE类型的最大值怎么做?

    2012-10-03 回答 VC2008中的float.h头文件中的宏定义: #define DBL_MAX    1.7976931348623158e+308 /* max value */ 追问 ...

  3. C语言中float,double类型,在内存中的结构(存储方式).

    从存储结构和算法上来讲,double和float是一样的,不一样的地方仅仅是float是32位的,double是64位的,所以double能存储更高的精度. 任何数据在内存中都是以二进制(0或1)顺序 ...

  4. c语言用double最大,C语言里double类型的最大值和最小值是多少?

    DBL_MAX:double型的最大值 DBL_MIN:double型的最小值 FLT_MAX:float型的最大值 FLT_MIN:float型的最小值 1.C语言是一门通用计算机编程语言,应用广泛 ...

  5. C++ int float double类型的数据大小端转化

    以下代码抄自<网络多人游戏架构与编程>,可以支持float.int.double等数据类型数据的大小端转换,测试代码为: void TestByteSwap() {int32_t test ...

  6. c语言double类型是几字节,c语言中int long float double 等类型所占字节及输出表示(转)...

    16位编译器 char :1个字节 char*(即指针变量): 2个字节 short int : 2个字节 int: 2个字节 unsigned int : 2个字节 float: 4个字节 doub ...

  7. c语言double数据存储形式,C语言 float、double数据在内存中的存储方式

    float在内存中占4个字节(32bit),32bit=符号位(1bit)+指数位(8bit)+底数位(23bit) 指数部分 指数位占8bit,可以表示数值的范围是0-(表示0~255一共256个数 ...

  8. c语言算式中有double和int,C语言当中int,float,double,char这四个有什么区别?

    区别在以下方面: 一.定义方面: 1.int为整数型,用于定义整数类型的数据 . 2.float为单精度浮点型,能准确到小数点后六位 . 3.double为双精度浮点型,能准确到小数点都十二位 . 4 ...

  9. mysql小数类型字段_mysql小数类型字段,float,double

    mysql float double类型 1.float类型 float列类型默认长度查不到结果,必须指定精度, 比如 num  float,  insert into  table (num) va ...

最新文章

  1. C# 集合类(四):Hashtable
  2. Visual Studio Styles
  3. MathType可以编辑省略号吗
  4. !何为脏读、不可重复读、幻读
  5. SpringBoot 自带工具类~StreamUtils
  6. 介绍一下关于Spring Cloud Stream
  7. Ubuntu系统下实时监控GPU的温度
  8. wordpress所属权限改为nginx_linux运维之logrotate日志轮替——对nginx日志进行轮替-linux运维...
  9. Python程序设计学习笔记-数据类型
  10. 2020-10-21
  11. Linux VS code安装Monaco字体
  12. 嵌入式软件开发与互联网软件开发模式差异
  13. CSS中常见中文字体的英文名称
  14. 垃圾邮件分类系统python_【Python】基于Bayes算法的垃圾邮件分类系统
  15. python hook微信_GitHub - 15993248973/wechathook: 借助微信hook,拦截修改某些call,填充进我们的Python代码,进行微信公众号文章的爬取...
  16. 多人联机的俄罗斯方块游戏(C++),游戏规则模仿任天堂Tetris99,基于qt,kcp,protobuf,qslog。
  17. ARGB颜色与int相互转换
  18. 计算机语言 机器码,什么是机器码 机器码封了怎么解决-与非网
  19. [jzoj 4745] 看电影 {期望}
  20. 困扰我多年的印度人点头摇头问题

热门文章

  1. 互联网上的“罪恶之城”:40多国联合行动才端掉它
  2. CDN怎么用?有哪些优势呢?如何挑选CDN服务商?
  3. aws 认证_AWS ML专业认证备忘单
  4. 编写微指令 计算机组成,计算机组成原理微指令实验报告.doc
  5. 约束优化:低维线性时间线性规划算法(Seidel算法)、低维线性时间严格凸二次规划算法
  6. Scrapy笔记(5)- Item详解
  7. C语言之NULL的含义
  8. 谷歌本周发布全新线性时间序列预测模型,再次反超Transformer
  9. Ubuntu 14.04安装IB卡驱动详细教程
  10. handlebars-预编译模板