上QQ阅读APP看书,第一时间看更新
3.1.1 各种整型数据类型
C语言中的整型数据类型如表3.1所示。
表3.1 C语言中的整型数据类型
读者可能会好奇,为什么需要定义这么多不同类型的整数呢?实际上,计算机通过晶体管的开关状态来记录数据。晶体管通常会被分为8个一组,我们称之为字节。由于晶体管只有两种状态,每个字节就可以拥有2的8次方种不同的状态。让每个状态对应一个数值,就可以表示256个不同的数值。图3.1清楚地展示了不同晶体管状态和它们所表示的数值。
图3.1 晶体管状态和表示的数值
提示:
本章涉及二进制的知识,如果你对于二进制还不太了解,建议先学习二进制的内容。本书默认你已经学会了二进制。
要表示更大的数值范围就需要更多的晶体管。在C语言刚刚发明的时代,计算机存储资源是非常宝贵且稀缺的。对于程序员来说,他们可能希望将存储区域“掰成两半”来使用。例如,如果只需要表示0~100的数字,那么一个字节就足够了,为什么要使用两个字节呢?
即使如今存储资源更加丰富,但许多编程语言仍然延续了这个传统。它们都提供了许多数据类型供选择。在编写代码时,程序员通常可以预测需要使用的数值范围。因此,在处理数据时,可以从语言提供的类型中选择最合适的类型存储数据。
你可能想了解这些整型数据类型占用了多少字节,以及它们的具体数值范围。但很遗憾,我们无法准确地告诉你,因为C语言标准没有规定这些数据类型的大小范围,具体的实现取决于编译器和平台。那么,我们应该如何知道在Visual Studio中各种整型数据类型可以表示的数值范围呢?
可以使用sizeof关键字测量。