获取整数的最大值最小值

简介:

c/c++常需要获得最大值,最小值,通常这两个数与平台和操作系统有关,因此可移植的办法就是推荐使用库函数提供的常量定义

1. 利用语言自定义

类似的常量定义在limits.h和float.h头文件中。在头文件中,整数的最值通常是这样的名字:INT_MAX, INT_MIN,直接使用即可。

 

2. 自定义变量

int MAX_INT = ((unsigned)(-1))>>1;
int MIN_INT = ~MAX_INT;

解释

int占4个字节。-1是有符号数,默认用补码表示,二进制表示为32个1,如果强制解释为无符号数,那么

(unsigned)(-1)

=(11111111 11111111 11111111 11111111)2(无符号数)

=2^0+2^1+2^2+....+2^31

=2^32-1

=4294967295

那么右移一位

(unsigned)(-1)>>1

=(01111111 11111111 11111111 11111111)2(无符号数)

=2^31-1

=2147483647

程序例证

复制代码
#include <iostream>
using namespace std;
int main()
{
    int max_int = (unsigned)(-1) >> 1;
    int min_int = ~max_int;
    cout << (signed)(-1) << endl;
    cout << (unsigned)(-1) << endl;
    cout << max_int << "\t" << min_int << endl;
}
复制代码

结果

注意

~(unsigned(-1) >> 1) = 2147483648(无符号的)

~max_int = 2147483648(有符号的)

 



本文转自jihite博客园博客,原文链接:http://www.cnblogs.com/kaituorensheng/p/3530000.html,如需转载请自行联系原作者

相关文章
|
3月前
|
搜索推荐 Java 数据处理
|
5月前
|
C++ 索引
C++数组、vector求最大值最小值及其下标
C++数组、vector求最大值最小值及其下标
182 0
|
8月前
60.编程统计数组a中正数、0、负数的个数
60.编程统计数组a中正数、0、负数的个数
51 0
wustojc1002求2个整数最大值
wustojc1002求2个整数最大值
56 0
|
8月前
|
人工智能
PTA-找出整型数组中最大值的函数
找出整型数组中最大值的函数
166 0
不用数组求多个数的最小值
不用数组求多个数的最小值
53 0
|
C++
acwing 716. 最大数和它的位置 int的最大值和最小值
acwing 716. 最大数和它的位置 int的最大值和最小值
97 0
7-10 求最大值及其下标
本题要求编写程序,找出给定的n个数中的最大值及其对应的最小下标(下标从0开始)。
119 0
了解函数,并写一个函数可以找出两数的最大值
了解函数,并写一个函数可以找出两数的最大值
LeetCode 1877. 数组中最大数对和的最小值
一个数对 (a,b) 的 数对和 等于 a + b 。最大数对和 是一个数对数组中最大的 数对和 。
132 0