C语言的数据类型繁多,其中最需要关注的是整数的范围,往往在题目或实际项目中需要考虑每一个数字的表示范围和计算大小,故而本文章在介绍数据类型的同时,提供了整数的范围大小。简而言之,若是数据大小在内,根据是否有正负数选择(signed)short或unsigned short,在~内则根据是否有正负数选择(signed)int、(signed)long int、unsigned int或unsigned long int即可,~内则选用(signed)long long int或 unsigned long long int。
另,在32位字长的计算机中,若要使用16位值,建议使用short型;在一般计算机中,在确定需要32位值时,建议使用long型,以便万一移植到16位字长计算机后无法使用。
C语言定义的基本数据类型有整数、浮点数、字符三大类,其中整数可以分为无符号数和有符号数两个类型,其中无符号数可以在加或不加signed关键字,而无符号数必须加unsigned关键字。于是有(signed) int、(signed) long int、(signed) long long int、(signed) short、 intunsigned int、 unsigned long int、 unsigned long long int、unsigned short int共8小类,浮点数包括float、double、long double共3小类,字符型包含char、unsigned char共2小类。
除这些基本数据类型外,C99标准还额外提供了_Bool、_Complex、_Imaginary、void共四种数据类型,分别表示布尔变量、复数和虚数和没有值。
布尔变量包含true和false两个值,分别表示1或0。
复数包含float_Complex、double_Complex、long double_Complex三种数据类型。
虚数包含float_Imaginary、double_Imaginary、long double_Imaginary三种数据类型。
float表示6位有效数字占4字节,double表示15位有效数字占8字节,long double表示19位有效数字占16字节。
char型表示一个字符,占一个字节长度,一般使用ASCII码,具体可以自行百度。
整数类型则如下表所示:
关键字 | 数值范围(二进制表示) | 数值范围(十进制表示) | 数值范围数量级 | 所占字节长度 | int | ~ | -2,147,483,648 ~ 2,147,483,647 | ~ | 4 | long int | ~ | -2,147,483,648 ~ 2,147,483,647 | ~ | 4 | long long int | ~ | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 | ~ | 8 | short int | ~ | -32,768 ~ 32,767 | ~ | 2 | unsigned int | 0 ~ | 0 ~ 4,294,967,295 | 0 ~ | 4 | unsigned long int | 0 ~ | 0 ~ 4,294,967,295 | 0 ~ | 4 | unsigned long long int | 0 ~ | 0 ~ 18,446,744,073,709,551,616 | 0 ~ | 8 | unsigend short int | 0 ~ | 0 ~ 65,535 | 0 ~ | 2 |
字长指计算机每次可以处理的数据长度,有64位、32位、16位、8位之分。
每一个字节占8个比特位,每个比特位则表示0或1。
|