C/C++ 中 int float double 最大值,最小值

博客介绍了几种数据类型的存储位数及取值范围。int和long用32位存储,long long用64位存储,还分别给出了它们的最大值和最小值。此外,也介绍了float和double的最大值和最小值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

https://blog.youkuaiyun.com/ACb0y/article/details/5336822

 

#include <iostream>
#include <float.h>
using namespace std;

int main()
{
	cout << "int 类型能存储的最大值和最小值" << endl;
	cout << "INT_MAX = " << INT_MAX << endl;
	cout << "INT_MIN = " << INT_MIN << endl;
	cout << "long 类型能存储的最大值和最小值" << endl;
	cout << "LONG_MAX = " << LONG_MAX << endl;
	cout << "LONG_MIN = " << LONG_MIN << endl;
	cout << "long long 类型能存储的最大值和最小值" << endl;
	cout << "LONG_LONG_MAX = " << LONG_LONG_MAX << endl;
	cout << "LONG_LONG_MIN = " << LONG_LONG_MIN << endl;
	cout << "float 类型能存储的最大值和最小值" << endl;
	cout << "FLT_MAX = " << FLT_MAX << endl;
	cout << "FLT_MIN = " << FLT_MIN << endl;
	cout << "double 类型能存储的最大值和最小值" << endl;
	cout << "DBL_MAX = " << DBL_MAX << endl;
	cout << "DBL_MIN = " << DBL_MIN << endl;
	return 0;
}

 

int和long都是用32位来存储最大值和最小值分别为2147483647(2^31-1 ~ 10^9), -2147483648(-2^31);

long long 是用64位来存储最大值和最小值分别为9223372036854775807(10^18),-9223372036854775808;

float的最大值和最小值分别为3.40282e+038(10^38),1.17549e-038(10^-38);

double的最大值和最小值分别为1.79769e+308(10^308),2.22507e-308(10^-308)。

### C++最大值最小值的表示方法 在 C++ 中,可以通过多种方式来获取不同类型的最大值最小值。以下是几种常见的实现方法及其特点。 #### 使用 `<limits>` 头文件中的 `std::numeric_limits` 模板类 通过引入标准库头文件 `<limits>`,可以利用模板类 `std::numeric_limits<T>::min()` 和 `std::numeric_limits<T>::max()` 来获取任意数值类型(如 `int`, `float`, `double` 等)的最小值最大值[^1]。 ```cpp #include <iostream> #include <limits> int main() { std::cout << "int 最小值: " << std::numeric_limits<int>::min() << std::endl; std::cout << "int 最大值: " << std::numeric_limits<int>::max() << std::endl; std::cout << "float 最小值: " << std::numeric_limits<float>::min() << std::endl; std::cout << "float 最大值: " << std::numeric_limits<float>::max() << std::endl; return 0; } ``` 这种方法的优点在于其通用性强,能够支持几乎所有的内置数据类型以及某些自定义类型。 --- #### 使用 `<climits>` 或 `<cfloat>` 提供的宏常量 C++ 还提供了专门针对整数类型和浮点数类型的预定义宏,在头文件 `<climits>` 和 `<cfloat>` 中声明。这些宏可以直接用来访问特定类型的最大值最小值[^3]。 - **整数类型** - `INT_MIN`: 表示 `int` 的最小值。 - `INT_MAX`: 表示 `int` 的最大值。 - 同样存在类似的宏用于其他整数类型,例如 `LONG_MIN`, `LONG_MAX`, `SHRT_MIN`, `SHRT_MAX` 等。 - **浮点数类型** - `FLT_MIN`: 表示 `float` 的最小正正规化值。 - `FLT_MAX`: 表示 `float` 的最大有限值。 - 对于双精度浮点数,则有对应的 `DBL_MIN` 和 `DBL_MAX`。 下面是一个简单的例子展示如何使用它们: ```cpp #include <iostream> #include <climits> // 需要包含此头文件才能使用 INT_MIN, INT_MAX 等宏 #include <cfloat> // 如果涉及 FLT_MIN, DBL_MAX 则需加入该头文件 int main(){ std::cout << "int 最小值:" << INT_MIN << ", int 最大值:" << INT_MAX << "\n"; std::cout << "long 最小值:" << LONG_MIN << ", long 最大值:" << LONG_MAX << "\n"; std::cout << "float 最小正值:" << FLT_MIN << ", float 最大值:" << FLT_MAX << "\n"; std::cout << "double 最小正值:" << DBL_MIN << ", double 最大值:" << DBL_MAX << "\n"; return 0; } ``` 这种方式简单明了,适合仅限于操作基本数据类型的情况;然而它的灵活性较低,不适用于更复杂的场景或者用户自定义的数据结构。 --- #### 手动计算数组或其他集合内的最值 当面对一组动态输入的数据而非固定的基础数据类型时,可能需要自行编写逻辑去寻找其中的最大值最小值。比如给定一个长度为 N 的数组,可通过遍历一遍找到全局范围内的极值[^2]: ```cpp #include <iostream> using namespace std; const int MAX_SIZE = 1e4 + 5; // 设定足够大的容量以防溢出 int data[MAX_SIZE]; int main(){ int size; cin >> size; for(int i=0;i<size;++i){ cin>>data[i]; } if(size==0){ cout<<"无任何元素"<<endl; return 0; } int currentMax=data[0],currentMin=data[0]; for(int i=1;i<size;i++){ if(data[i]>currentMax) currentMax=data[i]; if(data[i]<currentMin) currentMin=data[i]; } cout<< "当前序列中最大值:"<<currentMax<<"\t最小值:"<<currentMin<< endl; return 0; } ``` 上述程序片段展示了手动求解过程的一个实例——读取若干个数字并打印出它们之间的差异作为最终结果的一部分。 --- ### 总结 综上所述,C++ 支持多途径表达各种数据类型的边界约束条件。无论是借助标准化接口还是传统手段都可以满足实际开发需求下的不同侧重点考量因素。具体选用哪一种取决于项目背景和个人偏好等因素决定。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值