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
正好是-2147483648最小值
int最大值+1为什么是-2147483648最小值-1为什么是2147483647的更多相关文章
- python3 获取int最大值
python2 中获取int最大值 import sys i = sys.maxint print i 但是在python3中,报错: AttributeError: module 'sys' has ...
- 求int最大值以及int二进制
求int最大值:(((unsigned int)(~0))>>1) 求int的2进制串 string str = ""; int iNum = 100; for(int ...
- 两个int值相乘超过int最大值
System.out.println(100000000*1000 ); //输出结果是:1215752192 先将100000000*1000 的结果转化为二进制: 10111 01001000 0 ...
- sql server求分组最大值,最小值,最大值对应时间,和最小值对应时间
先创建数据库 CREATE TABLE [dbo].[Students]( [Id] [int] IDENTITY(1,1) NOT NULL, [age] [int] NULL, [name] [n ...
- int -2147483648 ----- 2147483647
int最大值+1为什么是-2147483648最小值-1为什么是2147483647 今天一个新手学编程就问到这个问题,很多人第一次学编程肯定会遇到这个问题,大部分都知道是溢出之类的,用源码和补码 ...
- 009、Java中超过了int的最大值或最小值的结果
01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...
- [编译,报错以及其他] 有关C/C++中int不能用-2147483648当最小值的问题
这个取决于今早看耗子叔的微博: 这里说到了int的取值范围的问题,int的取值是-2147483648 ~ 2147483647,但是如果直接在编译器(VS2013)中使用-2147483648会报错 ...
- C语言:通过返回指针的形式找出数组的最大值和最小值
// // main.c // Pointer_max_min(return) // // Created by ma c on 15/8/2. // Copyright (c) 2015年 ...
- [DataTable]C# datatable取最大值最小值
ArrayList al = new ArrayList(); DataTable dt = new DataTable(); dt.Columns.Add("A",typeof( ...
随机推荐
- Css 特性之 transition和transform
CSS 有一些新的属性,可以简化代码的书写,用简单的代码就可以实现复杂的变化.不用像 js 那样,需要写很多代码 这里主要介绍三个属性:transition ,transform,以及translat ...
- 科比投球预测-python实例
链接:http://pan.baidu.com/s/1i4PNJlr 密码:fz7e import matplotlib.pyplot as pltfig = plt.figure()ax1 = fi ...
- Scala语言学习笔记(4)
高阶函数 // 高阶函数 map val salaries = Seq(20000, 70000, 40000) val doubleSalary = (x: Int) => x * 2 val ...
- 根据条件决定My97DatePicker日期控件弹出的日期格式
代码如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <tit ...
- Python3 ssl模块不可用的问题
编译安装完Python3之后,使用pip来安装python库,发现了如下报错: $ pip install numpy pip is configured with locations that re ...
- Java8 Map的遍历方式
在这篇文章中,我将对Map的遍历方式做一个对比和总结,将分别从JAVA8之前和JAVA8做一个遍历方式的对比,亲测可行. public class LambdaMap { private Map< ...
- 使用js获取伪元素的content
在测试过程中有时候会遇到反爬虫机制,一些元素会使用伪元素,这样在定位元素的时候会定位不到,这时候就要使用js来帮助定位,获取到想要的元素 下面是部分代码 //使用js获取伪元素的content Str ...
- http头解释
<---响应头---> 长连接: Connection: keep-alive 开启长连接 ---- connection 英 [kəˈnekʃn]连接 ...
- java swing:文本框添加滚动条
有几点要注意: 1.默认的滚动条,仅在输入的文本超过文本框时才会显示..没有超过文本框是不会显示的: 2.设置矩形大小,是在滚动条上设置,而不是在文本框上设置: 示例代码如下: public clas ...
- 第七章 二叉搜索树 (d1)AVL树:重平衡