INT32_MIN溢出
先上代码
#include <stdio.h>
#include <stdint.h>#define MAX_INT32 0x7FFFFFFF
#define MIN_INT32 -0x80000000int main(int argc, const char* argv[]) {printf("min int32: %d \n", MIN_INT32);printf("min int32: %d \n", INT32_MIN);printf("half of min int32: %d \n", MIN_INT32 / 2);printf("half of min int32: %d \n", INT32_MIN / 2);return 0;
}
输出结果为:
min int32: -2147483648
min int32: -2147483648
half of min int32: 1073741824
half of min int32: -1073741824
发现MIN_INT32 / 2
并不是我们预期的结果。
搜索以后发现: 在C/C++语言中,不能够直接使用-2147483648来代替最小负数,因为这不是一个数字,而是一个表达式。表达式的意思是对整数21473648取负,但是2147483648已经溢出了int的上限,所以定义为(-INT_MAX -1)。
这应该就是为啥stdint.h
中为何要这么定义了
/* Minimum of signed integral types. */
# define INT8_MIN (-128)
# define INT16_MIN (-32767-1)
# define INT32_MIN (-2147483647-1)
# define INT64_MIN (-__INT64_C(9223372036854775807)-1)
/* Maximum of signed integral types. */
# define INT8_MAX (127)
# define INT16_MAX (32767)
# define INT32_MAX (2147483647)
# define INT64_MAX (__INT64_C(9223372036854775807))
INT32_MIN溢出相关推荐
- CSS 文字溢出显示省略号
溢出显示省略号的代码:其中 1 是行数. overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-c ...
- Tomcat内存溢出解决方法
Java内存溢出详解 一.常见的Java内存溢出有以下三种: 1. java.lang.OutOfMemoryError: Java heap space ----JVM Heap(堆)溢出 JVM在 ...
- 深入理解Java虚拟机——第二章——Java内存区域与内存溢出异常
运行时数据区域 Java虚拟机运行时数据区域 程序计数器 程序计数器可以看做是当前线程所执行的字节码的行号指示器.字节码解释器工作时就是通过改变这个计数器的值来选取下一条所需要执行的字节码指令,分支. ...
- Java内存溢出详解之Tomcat配置
Java内存溢出详解 转自:http://elf8848.iteye.com/blog/378805 一.常见的Java内存溢出有以下三种: 1. java.lang.OutOfMemoryError ...
- html溢出攻击,溢出(漏洞)攻击的实现及防御
前言 媒体上关于系统漏洞的话题一直不断,在我所接触的用一些朋友和用户中虽然也知道打系统补丁很重要,但却又一直不以为然总以为网络上的危险离自己很远,大部份人都认为进行一次远程攻击很困难甚至认为只要安装了 ...
- 解决Mask RCNN训练时GPU内存溢出问题
首先自己是个小白对于如何使用GPU跑程序这个学习了一下: (1)使用的是putty,安装了Anaconda这个IDE环境,用的conda install tensorflow-gpu安装的GPU版本t ...
- 一个简单的缓冲区溢出的思考
从大二开始真正接触技术开始,从最早的HTML,PHP,WEB开发.一直以为以后可能会从事开发的工作,碰巧大三上的时候和同专业的郭子,邹豪参加了南京的一个信息安全技能大赛,才真正找到了兴趣的方向,也从懵 ...
- 内存溢出和内存泄漏的定义,产生原因以及解决方法(面试经验总结)
一.定义(概念与区别) 内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory:比如申请 了一个integer,但给它存了long才能存 ...
- 从内存溢出看Java 环境中的内存结构
作为有个java程序员,我想大家对下面出现的这几个场景并不陌生,倍感亲切,深恶痛绝,抓心挠肝,一定会回过头来问为什么为什么为什么会这样,嘿嘿,让我们看一下我们日常在开发过程中接触内存溢出的异常: Ex ...
- JVM内存溢出的几种情形
1.堆溢出 原因:大量对象占据了堆空间,而这些对象都有强引用导致无法回收,当对象大小之和>Xmx参数指定的堆大小时导致溢出! List<byte[]> list = new Arra ...
最新文章
- 多帧点云拼接的全局ICP算法【附Matlab代码链接】
- linux下top命令
- c 使用matlab引擎,[转载]C与MATLAB混合编程之调用MATLAB引擎
- Android服务之AIDL
- Vishay将MCW 0406 AT系列精密宽端子薄膜片式电阻欧姆值降至业内最低
- python-往对象中添加属性值
- 【英语学习】【English L06】U08 News L5 They are expecting a baby!
- 怎样升级android10版本,手机怎么升级win10系统 win10手机版升级教程
- java response文件流下载,后缀名称设置
- POJ2109-Power of Cryptography
- 扩展欧几里得算法推导
- 微信小程序选项卡底线转换滑动动画
- PMP笔记-风险应对策略的区别
- 《嵌入式 - 语音识别TWen-ASR-ONE开发笔记》第4章 TWen-ASR-ONE PWM调光
- 刚刚!霍金向北京喊话:人类需要大胆前行,涉足无前人所及之处
- 用javascript统计字数,中文计数问题
- TwinCAT 3 气缸程序
- 十问旷视印奇、唐文斌:AI企业都在经历「死亡之谷」
- UPC——2020年春混合个人训练第二十五场(FG)
- 《HCNA网络技术学习指南》-命令版