【C++】详解 INT_MAX 和 INT_MIN(INT_MAX 和 INT_MIN是什么?它们的用途是什么?如何防止溢出?)

这篇具有很好参考价值的文章主要介绍了【C++】详解 INT_MAX 和 INT_MIN(INT_MAX 和 INT_MIN是什么?它们的用途是什么?如何防止溢出?)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、前言

 二、什么是 INT_MAX 和 INT_MIN ?

三、INT_MAX 和 INT_MIN 的用途 

四、如何避免溢出问题出现 ?

 五、 INT_MAX 和 INT_MIN 的运算

 六、leetcode 常考面试题

 七、共勉


一、前言

    大家在平时刷 leetcode 的时候,肯定会碰到 溢出问题 ,之后查看题解,大部分题解都会通过 INT_MAX 和 INT_MIN 来进行解决。那么为了弄清楚什么是 INT_MAX 和 INT_MIN ,我们收集了一些资料,总结如下哦!!

 二、什么是 INT_MAX 和 INT_MIN ?

     INT_MAX  和  INT_MIN 是 C++ 的两个预定义宏,代表了整型变量能够存储的最大正整数和最小负整数,分别为 2147483647-2147483648。这两个宏在头文件 <climits> 中定义。

    INT_MAX 表示一个 32 位符号整数所能够表示的最大值,也就是 2^31 − 1。而 INT_MIN 则表示最小的负整数。这个值是相对于二进制补码表示法的,也就是说,负数的范围比正数大 1。

代码示例: 

#include <iostream>
#include <climits>
using namespace std;

int main() 
{
    int max_int = INT_MAX;
    int min_int = INT_MIN;
    cout << "The maximum value that can be stored in an int variable is: " << max_int << endl; 
    // 2147483647
    cout << "The minimum value that can be stored in an int variable is: " << min_int << endl; 
    // -2147483648
    
    return 0;
}

【C++】详解 INT_MAX 和 INT_MIN(INT_MAX 和 INT_MIN是什么?它们的用途是什么?如何防止溢出?),C++,c++,开发语言,c语言,面试,算法

 【注意】:这些宏仅适用于 32 位整型变量,如果使用 64 位整型变量,需要使用其他预定义宏,如 LONG_LONG_MAX  和 LONG_LONG_MIN,代表能够存储的最大/最小长整数。

三、INT_MAX 和 INT_MIN 的用途 

 INT_MAX 是个很大的数,如果想得到数组中最小值,可以先将 min1(下方代码中的一个变量)设成 INX_MAX,这样就不需要 const int 定义一个很大的数了:

int min1 = INT_MAX;
for(int i = 0; i < n; i++)
{
	if(arr[i] < min1)
	{
		min1 = arr[i];
	}
}

四、如何避免溢出问题出现 ?

  【C/C++】中常量 INT_MAX 和 INT_MIN 分别表示最大、最小整数 。 INT_MAX , INT_MIN 数值大小因为int占4字节32位,根据二进制编码的规则,INT_MAX = 2^31-1,INT_MIN= -2^31。C/C++中,所有超过该限值的数,都会出现溢出,出现 warning,但是并不会出现error。如果想表示的整数超过了该限值,可以使用长整型 long long 占8字节64位。

 五、 INT_MAX 和 INT_MIN 的运算

C/C++ 语言中 int 类型是 32 位的,范围是 -2147483648 到 2147483647 。 

  • 最轻微的上溢是 INT_MAX + 1,结果是 INT_MIN
  • 最严重的上溢是 INT_MAX + INT_MAX,结果是 -2。
  • 最轻微的下溢是 INT_MIN - 1,结果是是 INT_MAX
  • 最严重的下溢是 INT_MIN + INT_MIN,结果是 0 。

 六、leetcode 常考面试题

题目:整数反转
链接:整数反转

【C++】详解 INT_MAX 和 INT_MIN(INT_MAX 和 INT_MIN是什么?它们的用途是什么?如何防止溢出?),C++,c++,开发语言,c语言,面试,算法

class Solution {
public:
    int reverse(int x) 
    {
        // to_string 函数的主要作用是将  整形 转换为  字符串
          string s = to_string(x);
          int l = 0;
          // 考虑 负数
          if(s[l]=='-')
          {
              l++;
          }
          // 将 数据部分 进行反转
          std::reverse(s.begin()+l,s.end());
          // INT_MAX 和 INT_MIN  是C++内置的常量
          const int k1 = INT_MAX,k2 = INT_MIN;
          string t1 = to_string(k1),t2 = to_string(k2);
          if(s[0]=='-')
          {
            if(s.size()==t2.size() && s > t2)
            {
                return 0;
            }
          }
          else
          {
            if(s.size()==t1.size() && s > t1)
            {
                return 0;
            }

          }
             // stoi() 将字符串转换为  整形
           x = stoi(s);
           return x;
    }
};

 七、共勉

  以下就是我对 详解 INT_MAX 和 INT_MIN 的理解,如果有不懂和发现问题的小伙伴,请在评论区说出来哦,同时我还会继续更新对C++  vector 类的理解,请持续关注我哦!!! 

【C++】详解 INT_MAX 和 INT_MIN(INT_MAX 和 INT_MIN是什么?它们的用途是什么?如何防止溢出?),C++,c++,开发语言,c语言,面试,算法文章来源地址https://www.toymoban.com/news/detail-843456.html

到了这里,关于【C++】详解 INT_MAX 和 INT_MIN(INT_MAX 和 INT_MIN是什么?它们的用途是什么?如何防止溢出?)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • (FPGA时序约束)set_max_delay/set_min_delay详解

           属于 时序例外 的一种。(时序例外是:某条路径在默认参数下没有被正确地分析时序,在这种情况下,需要告知时序分析工具这条路径是一个例外,需要按照我地特殊指示来执行这条路径地时序分析。举例:一个数据被一个寄存器同步采样,但不是每个时钟沿都采,

    2024年04月26日
    浏览(17)
  • Max-Min算法

    任务调度算法,随着多核处理器的发展,带来了新的挑战。如何利用高效的任务调度策略使得多核处理器充分发挥性能,是急需解决的问题。动态任务调度是根据运行时的情况动态的将任务分配到对应的资源上,但是需要实时的收集系统计算资源、存储资源以及网络资源等信

    2024年02月11日
    浏览(24)
  • 组合数学——Min-Max容斥

    Min-Max 容斥,即 $$max(S)=sum_{Tin S,Tneqemptyset}(-1)^{|T|-1}min(T)$$ 接下来证明上面那个式子是对的。定义 (S) 中共有 (N) 个元素,由大到小分别为 (s_1,s_2,dots,s_N) , (T_i) 为所有 (S) 大小为 (i) 的子集。 所有元素都大于 (s_i) 且大小为 (j) 的子集有 (tbinom{i-1}{j}) 个;则最

    2024年04月08日
    浏览(19)
  • Flink学习20:聚合算子(sum,max,min)

    常见的聚合算子 sum,max,min等 聚合算子可以在在keyedStream 流上进行滚动的聚合(即累计的操作),而且同一个 keyedStream 流上只能调用一次 聚合算子      

    2024年02月07日
    浏览(41)
  • C#面:C# ,Java 和 C++ 的特点,它们有什么异同,C# 分别从 C++ 和 Java 中吸取了它们哪些优点?

    C# 是由微软开发的一种面向对象的编程语言,主要用于开发 Windows 平台上的应用程序。 C# 具有简单、现代、安全和可靠的特性,它结合了 C 和 C++ 的优点,并且具有更高级别的抽象能力。 C# 支持垃圾回收机制,可以自动管理内存,减少了程序员对内存管理的负担。 C# 具有丰

    2024年02月19日
    浏览(18)
  • Microsoft Visual C++ 可再发行组件的用途是什么?

    Microsoft Visual C++ Redistributable 是 Windows 应用程序的关键组件,很多人在搜索下载的时候会选择 VC++ 运行库,这是一种组合版本。 它确保使用 Microsoft Visual C++ 编程语言构建的程序可以在您的计算机上顺利运行。   下面将为大家科普 Microsoft Visual C++ Redistributable 的用途、它的工

    2024年01月22日
    浏览(29)
  • Go 1.21.0 新特性min 和 max 内置函数解析

    Go 1.21.0 是 Go 语言的最新版本,它将在 2023 年 8 月发布,会带来了一些语言和工具的变化。其中一个值得关注的变化是增加了两个新的内置函数 min 和 max,用来对任意可比较类型进行最小值和最大值的操作。这是很常见的需求,现在有内置实现了。本文将介绍这两个函数的背

    2024年02月12日
    浏览(25)
  • C++中vector、list和deque的选择:什么时候使用它们?

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 在C++中,vector、list和deque是STL(标准模板库)提供的三种常见的容器。每种容器都有其特点和适用场景。本文将详

    2024年02月13日
    浏览(22)
  • python入门,数据容器的通用操作(len,max,min,sorted)

        list(容器)将给定容器转化为列表 字符串转列表将字符串内的每一个元素都取了出来作为列表的每一个元素 字典则只会取出它的key,value会消失 str(容器)将给定容器转化为字符串 转化为字符串相当于在容器的两边加上双引号 tuple(容器)将给定容器转化为元组 set(

    2024年01月16日
    浏览(21)
  • C++中的多态是什么?如何实现多态?解释一下C++中的虚函数和纯虚函数,它们的作用是什么?

    C++中的多态是什么?如何实现多态? 在C++中,多态(Polymorphism)是面向对象编程的三大特性之一,另外两个是封装(Encapsulation)和继承(Inheritance)。多态指的是允许一个接口(或一个父类引用)在多种数据类型上被实现,或者一个接口被多个不同的类以不同的方式实现。

    2024年02月19日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包