C++-int最大值
uint范围 0-255
int范围 -128 - 127
-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 11111 补码0000 0000 0000 0000 0000 0000 0000 0001得到 补码1000 0000 0000 0000 0000 0000 0000 0000正好是-2147483648最小值
说法1:
MAX_INT + 1 = 100000000000000000000 根据int有符号的定义,第一位是符号位,这样看来,这个数值就是 -0 ; 那么我们再来讨论这样一种场景,按照int的第一个位是符号位的说法 MIN_INT=11111111111111111111111111111111,前面我们计算过 31位的全1 = 2^31 -1, 所以MIN_INT=-2^31 + 1. 这应该是正常思路看待int的最大值和最小值的场景.但是我们还有一个-0没有解决,我们按照之前定义的MIN_INT来计算一下MIN_INT-1 = -2^31 + 1 -1 = -2^31. 咦,我们去掉超过的1位,发现它竟然也是 100000000000000000000 和 -0的含义一样 ,所以我们要解决的-0 可以把原来的MIN_INT-1 作为新的MIN_INT! 这样int的取值范围就是 -2^31 到 2^31 -1
说法2:
当然,说法1是我发现的一种解释,
网上的解释是:
有+0和-0,两个0。因为负数在计算机中都是以补码方式存储的,且没有任何正数的补码是 100000000000000000000 ,所以把 -0 看成 int最小值(符号位参与运算)
————————————————
版权声明:本文为CSDN博主「卖山竹的山兔」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44683593/article/details/107533283
C++-int最大值相关推荐
- kotlin int最大值_Kotlin程序查找三个数字中的最大值
kotlin int最大值 Input 3 integer numbers, we have to find the largest of these input numbers. 输入3个整数,我们 ...
- c++语言int最大值,c++ 关于如何获取int型的最大值
之前有一个题,因为求最小值时minn初始赋值不够大,导致一直没过,卡了很久. 之后我就发愤图强学了这方面的内容: int型的最大值是0x7fffffff, 可以算一下 0x7FFFFFFF 是多少 每 ...
- mysql的int最大值_MySQL中int最大值深入讲解
导语 前两天看到的问题,展开写一下. 字节 我们都知道计算机是以二进制为基础.存储的基本单位是 Bit,也称为比特.二进制位.1bit 可以表示 0 或者 1 两个数字,是可能存在的最小的信息量,任何 ...
- mysql中int最大多少,MySQL中int最大值深入讲解
MySQL中int最大值深入讲解 导语 前两天看到的问题,展开写一下. 字节 我们都知道计算机是以二进制为基础.存储的基本单位是 Bit,也称为比特.二进制位.1bit 可以表示 0 或者 1 两个数 ...
- int 最大值的5种表示方式
一时兴起,想到了五种int最大值的表示方式 函数库里宏定义:INT_MAX 十六进制表示:0x7fffffff 2^31 - 1 位运算表示:(1 << 31) - 1 二进制全1然后右移 ...
- MySQL 中 int 最大值
导语 前两天看到的问题,展开写一下. 字节 我们都知道计算机是以二进制为基础.存储的基本单位是 Bit,也称为比特.二进制位.1bit 可以表示 0 或者 1 两个数字,是可能存在的最小的信息量,任何 ...
- python3 获取int最大值
python2 中获取int最大值 import sys i = sys.maxint print i 但是在python3中,报错: AttributeError: module 'sys' has ...
- go int 最大值_Dig101 - Go之灵活的slice
文章首发:公众号 newbmiao Dig101: dig more, simplified more and know more Slice作为go常用的数据类型,在日常编码中非常常见. 相对于数组 ...
- int最大值java_Java 中一个int型数组的求最大值最小值 | 学步园
小友今日看单元测试,发现的一个测试用例的代码.而测试的是某个类的最大值,最小值方法. 在此把测试类发上来.保留此地,如有人对此有兴趣,看以看下.闲话少说: public class MaxMinToo ...
- php int最大值探究
官方最大值 PHP_INT_MAX 官方最大值为 32平台:2147483647 64平台:9223372036854775807 The largest integer supported in t ...
最新文章
- java 1.7 事件监听_17.7Listener监听器
- JAVA基础加强笔记
- 授人以鱼不如授人以渔——CPU漏洞的Symantec解决之道
- metadata usage in the runtime
- 图像卷积与滤波知识点整理(1)
- Leetcode--56. 合并区间
- 蓝桥杯第八届省赛JAVA真题----分巧克力
- 用node-webkit开发多平台的桌面客户端
- mysql grant all privileges_MySQL数据备份及还原(一)
- 揭开OpenStack 统计资源和资源调度的面纱
- bzoj 3384: [Usaco2004 Nov]Apple Catching 接苹果(DP)
- HCIE-Security Day26:IPSec:实验(一)两个网关之间通过IKE方式协商IPSec PN隧道(采用预共享密钥认证)
- 【存储】AIX存储管理基本概念和操作(LVM)
- 2018华为网络技术大赛课程-服务器操作系统基础原理自测题答案
- 【智慧医疗】什么是电子健康记录(EHR)?
- MACOS使用Karabiner解决CapsLock按键切换大写延迟问题
- DDCTF2018-黑盒破解 详细WP
- windows资源管理器转圈崩溃
- 计算机水冷原理,水冷电脑流动的是什么“水”
- vue 网络异常提示
热门文章
- App邀请好友机制如何设计?且看这些方法
- 【Excel 教程系列第 10 篇】Excel 2016 界面介绍
- SAP ABAP修改字段描述(翻译及传输)
- kettle9.2报 Connection failed. Verify all connection parameters and confirm that the appropriate driv
- 量化政策后的电力优化文章——《计及交叉补贴分摊的输配电价定价方法》
- asmi lpar_管理LPAR启动顺序并使用系统概要文件验证资源分配
- 【Electron】酷家乐客户端开发实践分享 — 入坑篇
- [JAVA毕业设计]Vue框架电商后台管理系统源码获取和系统演示
- 【EMQX 5.0】1.3 MQTT协议数据包结构
- 数据恢复软件从iOS恢复短信