C++如何定义无穷大和无穷小
int型变量的取值范围:[-2^31, 2^31 - 1] -> [-2147483648, 2147483647]
0x7fffffff = 2147483647 = (2^31 - 1) = (1 << 31) - 1
0x3fffffff = 1073741823 = (2^30 - 1) = (1 << 30) - 1
0x3f3f3f3f = 1061109567
0x7fffffff = 2147483647,恰好等于int型变量的上界,所以在一些情况下用0x7fffffff表示无穷大是一个很好的选择
但是在求图的最短路径时,往往需要进行无穷大数的比较而0x7fffffff再加上一个正数会溢出,成为负数,所以一般情况下,定义为0x3fffffff或者0x3f3f3f3f 就能满足要求
无穷小:0xc0c0c0c0 = -1061109568
定义方式:
#define INF1 0x7fffffff #define INE2 0x3fffffff #define INF3 0x3f3f3f3f #define INF4 0xc0c0c0c0 //无穷小 const int INF5 = 0x7fffffff; const int INF6 = 0x3fffffff; const int INF7 = 0x3f3f3f3f; const int INF8 = 0xc0c0c0c0; //无穷小
或者
如果是int,用INT_MAX表示正无穷,INT_MIN表示负无穷,需要包含头文件limits.h;
如果是double,用DBL_MAX表示正无穷,DBL_MIN表示负无穷,需要包含文件float.h。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 提示词工程——AI应用必不可少的技术
· 地球OL攻略 —— 某应届生求职总结
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界