int -2147483648 ----- 2147483647
int最大值+1为什么是-2147483648最小值-1为什么是2147483647
今天一个新手学编程就问到这个问题,很多人第一次学编程肯定会遇到这个问题,大部分都知道是溢出之类的,用源码和补码就很容易说明
int i = -2147483648 ;这是不允许的 VS里报的错 error C4146 : 一元负运算符应用于无符号类型,结果仍为无符号类型错误,
那么我们就会想,如果非要用int存 -2147483648那么符号位和数据位共用, int的第一位二进制是符号位0是整数,1是负数
-2147483647 原码1111 1111 1111 1111 1111 1111 1111 1111
-2147483647-1=-2147483648;
由于cpu里面存的是补码计算
-2147483647 补码1000 0000 0000 0000 0000 0000 0000 0001
-1 补码1111 1111 1111 1111 1111 1111 1111 1111
得到-2147483648 补码1000 0000 0000 0000 0000 0000 0000 0000
-2147483648-1得到2147483647;
-2147483648 补码1000 0000 0000 0000 0000 0000 0000 0000
-1 补码1111 1111 1111 1111 1111 1111 1111 1111
得到 补码0111 1111 1111 1111 1111 1111 1111 1111
正好是2147483647 最大值
2147483647+1得到-2147483648;
2147483647 补码0111 1111 1111 1111 1111 1111 1111 1111
1 补码0000 0000 0000 0000 0000 0000 0000 0001
得到 补码1000 0000 0000 0000 0000 0000 0000 0000
int -2147483648 ----- 2147483647的更多相关文章
- 现在的C语言编辑器里的int范围为什么是-2147483648~2147483647 2014-08-05 10:21 100人阅读 评论(0) 收藏
下面是引用百度文库的一段话: "这得从二进制的原码说起: 如果以最高位为符号位,二进制原码最大为0111111111111111=215-1=32767 最小为111111111111111 ...
- int32 无符号范围 -2147483648~2147483647
int32 无符号范围 -2147483648~2147483647
- char,short ,int ,long,long long,unsigned long long数据范围
from:http://www.cnblogs.com/A123456A/archive/2013/01/25/2876634.html char,short ,int ,long,long long ...
- P1001 A+B Problem(int,long long)
题目描述 输入两个整数 a,b,输出它们的和(∣a∣,∣b∣≤109). 注意 Pascal 使用 integer 会爆掉哦! 有负数哦! C/C++ 的 main 函数必须是 int 类型,而且最后 ...
- [ACM训练] 算法初级 之 搜索算法 之 广度优先算法BFS (POJ 3278+1426+3126+3087+3414)
BFS算法与树的层次遍历很像,具有明显的层次性,一般都是使用队列来实现的!!! 常用步骤: 1.设置访问标记int visited[N],要覆盖所有的可能访问数据个数,这里设置成int而不是bool, ...
- Intellj IDEA Java随笔
敲击sout+Tab会出现:System.out.println(); int(-2147483648, 2147483647) 当一个方法类型不是void时,那么我们不仅要考虑它正确时的返回值,错误 ...
- java的数据类型的转换
一:java的数据类型转换除布尔类型boolean(不能转换)有两种:<一> 自动转换: <二> 强制转换 <一>.自动转换:就是将小的数据类型自动转换成大的数据类 ...
- MySQL学习笔记--数据类型
一.数据类型(内容参考<SQL学习指南>)不完整 1.文本类型 文本类型 最大字节数 tinytext 255 text 65535 varchar 65536 mediumtext 16 ...
- 基本数据类型范围大小&&字节大小
char -128 ~ +127 short -32767 ~ + 32768 unsigned short 0 ~ 65536 int -2147483648 ~ +2147483647 unsig ...
随机推荐
- maven 转化gradle
- swift - 加速器/摇一摇功能
import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoa ...
- 使用Python3.x抓取58同城(南京站)的演出票的信息
#!/usr/bin/env python #-*-coding: utf-8 -*- import re import urllib.request as request from bs4 impo ...
- js的urlencode
function urlencode (str) { str = (str + '').toString(); return encodeURIComponent(str).replace(/!/g, ...
- linux arm-linux-gcc 安装编译
1,将 .tgz 安装包通过SSH传至ubuntu 2,tar -zxvf arm-linux-gcc.tgz 解压 3,配置环境变量(由于鄙人只需其中一个用户使用,所以直接再其主目录) ...
- mysql 单表查询
一 单表查询的语法 SELECT 字段1,字段2... FROM 表名 WHERE 条件 GROUP BY field HAVING 筛选 ORDER BY field LIMIT 限制条数 二 ...
- android studio 3.0 集成ijkplayer
一.ijkplayer编译过程略,有兴趣的朋友可以再研究,以下以编译好的版本讲解. 将ijkplayer相关的so及aar文件复制到app下的libs目录,为支持多版本的手机使用,将所有的so文件都复 ...
- slam14讲证明构成李代数
- hdu 3415(单调队列) Max Sum of Max-K-sub-sequence
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=3415 大意是给出一个有n个数字的环状序列,让你求一个和最大的连续子序列.这个连续子序列的长度小于等于k. ...
- [转载]RPM中SPEC常用路径以及宏变量
转自:http://blog.csdn.net/txgc1009/article/details/6833764 通过命令rpm --showrc查看实现代码.另外直接通过 rpm --eval &q ...