今天一个新手学编程就问到这个问题,很多人第一次学编程肯定会遇到这个问题,大部分都知道是溢出之类的,用源码和补码就很容易说明

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最小值

最新文章

  1. asp.net mvc 之旅 —— 第五站 从源码中分析asp.net mvc 中的TempData
  2. Java异常处理机制 try-catch-finally 剖析
  3. 调用JavaScript
  4. 【codevs1033】 蚯蚓的游戏问题
  5. 【读书笔记】iOS-头文件导入-@class注意事项
  6. Jsp与servlet之间页面跳转及参数传递实例(转)
  7. PHP: 使用CURL访问FTP
  8. gcc常用命令集
  9. openStack windows2008 centos6.* img
  10. OpenBlas编译方法(体验msys下使用MingW)
  11. Confluence 6 升级自定义的站点和空间关闭缓存
  12. java多线程快速入门(十五)
  13. rancher2.x添加node的坑。
  14. ubuntu下Node.js环境搭建
  15. Windbg找出memory leak的一种笨办法
  16. shell 脚本实战笔记(2)--环境变量PATH的恩怨情仇
  17. VS2013快捷键
  18. php面试必知必会常见问题
  19. CentOS测网速
  20. HDU2732 最大流

热门文章

  1. How to Pronounce the I in ING
  2. L2tp协议简单解析
  3. DirectShow 制作在Unity3D中可以设置进度的视频播放插件
  4. scala private 和 private[this] 的区别
  5. pyplot绘图区域
  6. spark 创建稀疏向量和矩阵
  7. tensorflow生成随机数的操作 tf.random_normal & tf.random_uniform & tf.truncated_normal & tf.random_shuffle
  8. zookeeper集群搭建 windows
  9. mysql 导出sql结果成csv文件
  10. 整合Struts2框架和Spring框架