概述

整数数据类型表示一系列数学上的整数。整数类型可能有不同的大小,并且可能允许或不允许包含负值。整数通常在计算机中以一组二进制位(bits)表示。该分组的大小不同,因此整数的大小集合在不同类型的计算机和编程语言之间会有所变化。

讨论

整数数据类型表示的是整数(没有小数部分)。整数值是逐步跳跃的,意味着没有值位于6和7之间。有人可能会问,为什么不将所有数字都表示为浮点数呢?浮点数允许表示带小数部分的数字。原因有三方面。首先,现实世界中有些事物并不带有小数部分。例如,一只狗,即便只有三条腿,仍然是“一只”狗,而不是三分之四只狗。其次,整数数据类型常用于通过计数来控制程序流程,因此需要一种从一个值跳跃到另一个值的数据类型。第三,CPU内的整数处理比浮点数处理要快得多。

整数数据类型在支持它的所有编程语言中具有类似的属性,并且行为或表现相似。

语言数据类型示例

语言 保留字 大小 范围
C++ short 16位 / 2字节 -32,768 到 32,767
C++ int 可变 取决于编译器
C++ long 32位 / 4字节 -2,147,483,648 到 2,147,483,647
C++ long long 64位 / 8字节 −9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
C# short 16位 / 2字节 -32,768 到 32,767
C# int 32位 / 4字节 -2,147,483,648 到 2,147,483,647
C# long 64位 / 8字节 −9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
Java short 16位 / 2字节 -32,768 到 32,767
Java int 32位 / 4字节 -2,147,483,648 到 2,147,483,647
Java long 64位 / 8字节 −9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
JavaScript N/A 无特定整数类型,Math.round()可用来返回四舍五入后的整数值
Python int() 无限制 无限制
Swift Int 可变 取决于平台
Swift Int32 32位 / 4字节 -2,147,483,648 到 2,147,483,647
Swift Int64 64位 / 8字节 −9,223,372,036,854,775,808 到 9,223,372,036,854,775,807

对于C++和Swift,默认整数的大小会根据使用的编译器和计算机而有所不同。这种效果被称为“机器依赖”。这些整数数据类型的变化对于初学者来说是个麻烦。对于初学者来说,更重要的是理解整数数据类型的一般属性,这些属性适用于大多数编程语言。

JavaScript不支持整数数据类型,但可以使用Math.round()函数返回四舍五入后的整数值。

Python 3中的整数大小没有限制,但可以使用sys.maxsize来确定列表或字符串索引的最大实用大小。

关键术语

  • 机器依赖:编程语言的一个属性,指其表现会根据计算机的CPU不同而有所变化。

参考文献

  • cnx.org: 《编程基础 – 使用C++的模块化结构化方法》
  • Wikipedia: 《整数(计算机科学)》
  • Mozilla: 《Math.round()》
  • Python.org: 《整数》
Last modified: Friday, 10 January 2025, 3:45 PM