【C/C++】为什么INT_MAX(整形最大值)减去INT_MIN(整形最小值)等于-1
#include <iostream>
#include <limits.h>
using namespace std;
int main()
{cout<<INT_MAX-INT_MIN<<endl;//输出-1return 0;
}
- 首先INT_MAX是int所能够正确存储的最大整形,是一个很大的正整数
- INT_MIN是int所能够正确存储的最小整形,是一个很小的负整数。
- 所以很大的正整数减去很小的负整数,将会是一个比INT_MAX还要大的正整数,而int所能正常存储的最大整数是INT_MAX,所以相减后的结果肯定不能正常存储,也就是说会发生溢出,最终导致结果为-1。
- 强烈建议首先看下我的这篇文章,便于理解下面的内容。
int是4字节32位,它能够保存的最大正整数二进制形式如下:
011111........1
(31个1)
它所能够保存的最小负整数如下:
10000..........0
(31个0)
两者相减以后,最左边0-1发生溢出,结果为1,所以最终相减的结果变为:
111..............
(32个1)。
而按照补码的方式计算,改结果等于1。 - 总结:计算机中整形数的表示可以这样记忆,从0开始
00000.......1
表示1,000000.......10
表示2,依次递增,直到01111111......1111
表示最大的正数。最大蒸熟在加一就成了1000000......0000
表示最小负数,10000000........01
表示第二小负数,依次递增。 - 如果放在数轴上就形成了一个环:
【C/C++】为什么INT_MAX(整形最大值)减去INT_MIN(整形最小值)等于-1相关推荐
- 栈与队列9——最大值减去最小值小于或等于num的子数组的数量
题目 给定数组arr和整数num,共返回有多少个子数组满足如下情况: max(arr[i..j])-min(arr[i..j])<=num max表示子数组arr[i..j]中的最大值,min表 ...
- 最大值减去最小值小于或等于num的子数组数量
题目:给定数组arr和整数num,共返回有多少个子数组满足如下情况:子数组中的最大值减去最小值小于或等于num. 要求,时间复杂度O(N). 基本思路: 首先明确两点: 1.如果子数组arr[i-j] ...
- 左神算法:最大值减去最小值小于或等于num的子数组的数量(Java版)
本题来自左神<程序员面试代码指南>"最大值减去最小值小于或等于num的子数组的数量"题目. 题目 给定数组 arr 和整数 num,共返回有多少个子数组满足如下情况: ...
- 二维数组求最小值_05-最大子矩形-最大值减去最小值小于或等于num的子数组数量...
年轻即出发... 简书:https://www.jianshu.com/u/7110a2ba6f9e 知乎:https://www.zhihu.com/people/zqtao23/posts Git ...
- 作业三——求左部分中的最大值减去右部分最大值的绝对值,最大是多少...
给定一个长度为N(N>1)的整型数组A,可以将A划分成左右两个部分,左部分A[0..K],右部分A[K+1..N-1],K可以取值的范围是[0,N-2].求这么多划分方案中,左部分中的最大值减去 ...
- 栈和队列---最大值减去最小值小于或等于num的子数组数量
[题目] 给定数组arr和整数num,共返回有多少个子数组满足如下情况:子数组中的最大值减去最小值小于或等于num. 要求,时间复杂度O(N). [基本思路] 首先明确两点: 1.如果子数组arr[i ...
- 【面试题 - 最大值减去最小值小于或等于 num 的子数组数量】滑动窗口
题干: 解题报告: 我们用两个指针(i,j)分别代表窗口的左边界和右边界,窗口也就是子数组: 用两个双端队列分别维护这个窗口的最大值和最小值: 当窗口扩大时,即j向右扩展时,窗口内的最大值只会越来越大 ...
- C语言学习之输出10个整数中的最大值及其下标、最小值及其下标
1.试编程从键盘输入10个整数并保存到数组,输出10个整数中的最大值及其下标.最小值及其下标. #include <stdio.h> void main(){int a[10],i;int ...
- java 找序列最小值_【C++编程练习】任意给定 n 个有序整数,求这 n 个有序整数序列的最大值,中位数和最小值...
题目来源 题目描述 老师给了你n个整数组成的测量数据,保证有序(可能为升序或降序),可能存在重复的数据.请统计出这组测量数据中的最大值.中位数以及最小值,并按照从大到小的顺序输出这三个数. 输入格式 ...
- 在二维数组中寻找最小鞍点1181(该行最大值,该列最小值)(2种思路)
题目描述 找出一个2维数组矩阵的鞍点,即该位置上的元素在该行中最大,在该列中最小,可能不存在鞍点,如果存在多个,输出最小的那个! 输入要求 输入 n,m表示二维矩阵的行数和列数,然后根据行列数输入n* ...
最新文章
- 【Win32 API学习]打开可执行文件
- linux 模拟生成 CAN 设备
- R包corrplot绘图相关系数矩阵
- python爬虫图片实例-【图文详解】python爬虫实战——5分钟做个图片自动下载器...
- Twitter是如何做到每秒处理3000张图片的?
- SSD+HDD双硬盘+MSI主板win8.1+ubuntu17.04双系统安装总结
- toj 4604 搞笑版费马大定理
- 一位父亲对孩子的灭日教育(暴强)
- CCCC-GPLT L2-019. 悄悄关注 团体程序设计天梯赛
- C++ 信号处理 signal(SIGINT, signalHandler);
- 游戏公司2022秋招记录
- SQL经典面试50题 | 附答案
- 手撕《现代信号处理》——通俗易懂的现代信号处理章节详解集合
- insightface 的学习与使用
- 汽车车灯注塑件三维尺寸公差检测
- 2023年软考高项论文秘籍大讲堂|开篇
- python-模块使用方法
- python数据分析培训内容可以_Python数据分析师
- tensorflow框架精细讲解(一)
- python实现在线翻译
热门文章
- matlab函数grid,Matlab基本函数-grid、box函数
- word上下的横线怎么去掉_word中去掉页面上的横线 word页面横线怎么去掉
- 栈和队列的共同处和不同处
- Could Not find resource [logback.groovy] ; Cound Not find resource [logback-test.xml]
- 小说网站源码+采集器+App端
- 夜神设置android版本,使用夜神模拟器调试android app
- Zblog博客怎么实现微博登陆?
- ajax2 cors跨域,Koa2框架应用CORS完成跨域ajax要求
- 友达5寸工控液晶屏G050VTN01.1 小尺寸液晶屏
- Mysql数据库内对查询结果去重复指令【重点】