c语言float,double类型的理解
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类型的理解相关推荐
- 转载——C语言中float,double类型,在内存中的结构(存储方式)
最近在做一个数据格式分析和转换的项目,第一次接触底层的二进制代码存储,看的一头雾水,看到这个帖子后对于在Windows系统下数据的存储方式有了更多的了解,将原文分享一下: 原文地址为http://ww ...
- c语言double最大整数最小正数,用C语言输出DOUBLE类型的最大值怎么做?
2012-10-03 回答 VC2008中的float.h头文件中的宏定义: #define DBL_MAX 1.7976931348623158e+308 /* max value */ 追问 ...
- C语言中float,double类型,在内存中的结构(存储方式).
从存储结构和算法上来讲,double和float是一样的,不一样的地方仅仅是float是32位的,double是64位的,所以double能存储更高的精度. 任何数据在内存中都是以二进制(0或1)顺序 ...
- c语言用double最大,C语言里double类型的最大值和最小值是多少?
DBL_MAX:double型的最大值 DBL_MIN:double型的最小值 FLT_MAX:float型的最大值 FLT_MIN:float型的最小值 1.C语言是一门通用计算机编程语言,应用广泛 ...
- C++ int float double类型的数据大小端转化
以下代码抄自<网络多人游戏架构与编程>,可以支持float.int.double等数据类型数据的大小端转换,测试代码为: void TestByteSwap() {int32_t test ...
- c语言double类型是几字节,c语言中int long float double 等类型所占字节及输出表示(转)...
16位编译器 char :1个字节 char*(即指针变量): 2个字节 short int : 2个字节 int: 2个字节 unsigned int : 2个字节 float: 4个字节 doub ...
- c语言double数据存储形式,C语言 float、double数据在内存中的存储方式
float在内存中占4个字节(32bit),32bit=符号位(1bit)+指数位(8bit)+底数位(23bit) 指数部分 指数位占8bit,可以表示数值的范围是0-(表示0~255一共256个数 ...
- c语言算式中有double和int,C语言当中int,float,double,char这四个有什么区别?
区别在以下方面: 一.定义方面: 1.int为整数型,用于定义整数类型的数据 . 2.float为单精度浮点型,能准确到小数点后六位 . 3.double为双精度浮点型,能准确到小数点都十二位 . 4 ...
- mysql小数类型字段_mysql小数类型字段,float,double
mysql float double类型 1.float类型 float列类型默认长度查不到结果,必须指定精度, 比如 num float, insert into table (num) va ...
最新文章
- C# 集合类(四):Hashtable
- Visual Studio Styles
- MathType可以编辑省略号吗
- !何为脏读、不可重复读、幻读
- SpringBoot 自带工具类~StreamUtils
- 介绍一下关于Spring Cloud Stream
- Ubuntu系统下实时监控GPU的温度
- wordpress所属权限改为nginx_linux运维之logrotate日志轮替——对nginx日志进行轮替-linux运维...
- Python程序设计学习笔记-数据类型
- 2020-10-21
- Linux VS code安装Monaco字体
- 嵌入式软件开发与互联网软件开发模式差异
- CSS中常见中文字体的英文名称
- 垃圾邮件分类系统python_【Python】基于Bayes算法的垃圾邮件分类系统
- python hook微信_GitHub - 15993248973/wechathook: 借助微信hook,拦截修改某些call,填充进我们的Python代码,进行微信公众号文章的爬取...
- 多人联机的俄罗斯方块游戏(C++),游戏规则模仿任天堂Tetris99,基于qt,kcp,protobuf,qslog。
- ARGB颜色与int相互转换
- 计算机语言 机器码,什么是机器码 机器码封了怎么解决-与非网
- [jzoj 4745] 看电影 {期望}
- 困扰我多年的印度人点头摇头问题
热门文章
- 互联网上的“罪恶之城”:40多国联合行动才端掉它
- CDN怎么用?有哪些优势呢?如何挑选CDN服务商?
- aws 认证_AWS ML专业认证备忘单
- 编写微指令 计算机组成,计算机组成原理微指令实验报告.doc
- 约束优化:低维线性时间线性规划算法(Seidel算法)、低维线性时间严格凸二次规划算法
- Scrapy笔记(5)- Item详解
- C语言之NULL的含义
- 谷歌本周发布全新线性时间序列预测模型,再次反超Transformer
- Ubuntu 14.04安装IB卡驱动详细教程
- handlebars-预编译模板