每种类型都对应于原始的存储位数,也就间接产生了最大和最小值。水满自溢同理。对于一些复合类型,比如封装的字符串,利用堆空间并可以自动增大,理论上长度可以无限,受限于计算机硬件内存和长度变量类型。
最大最小值
以整形为例:
- C/C++提供形如INT_MAX或INT_MIN宏。
- C++98 STL numeric_limits<int>::max() or min()提供同样功能,C++11额外增加了lowest().
- 浮点数比较特殊,lowest代表最小负数,min代表最小浮点正数。
- C++98 STL numeric_limits<int>::max() or min()提供同样功能,C++11额外增加了lowest().
- Java: 形如Integer.MAX_VALUE和Integer.MIN_VALUE.
- C#: 形如int.MaxValue和int.MinValue.
- Python给出整形最大值或最小值意义不大,当超出范围,自动扩展,即整数可以想象中是无限增大不溢出(受限于系统内存)。
- 64位整数最大和最小值:sys.maxsize和-sys.maxsize - 1
- 9223372036854775807 -922337203685477580
- 64位整数最大和最小值:sys.maxsize和-sys.maxsize - 1
- JS: Number有最大安全整数和最小安全整数定义,更大的整数用BigInt.
- Number.MAX_SAFE_INTEGER(253 - 1或9007199254740991)和Number.MIN_SAFE_INTEGER(-253 + 1或-9007199254740991)