C整型
目标
在本文章中,您将了解C整数类型,并了解signed/unsigned、short/long限定符的工作原理。
介绍C整型
整数是包括负数、零和正数的数字,例如:-1、0、1、2…2020。整数没有小数点。例如,数字3.14不是整数,因为它包含一个小数点。
C使用int关键字来表示整型。下面声明了一个整数类型的变量: int age = 1; 为了在内部存储整数,C使用一个固定的位数(由0和1组成的序列)。在不同的计算机中,位数也是不同的。
例如,大多数UNIX机器使用32位(4字节)来表示整数。因此,int数的范围是从-2^32(- 2147,483,648)到2^31-1(2147,483,647)。
然而,一些传统PC使用16位来表示整数。因此,整数的取值范围是-32,768 ~ 32,767。
limits.h文件定义了两个表示最小和最大整数的值。以下程序显示您计算机上的整数范围:
#include <stdio.h>
#include <limits.h>
int main()
{
printf("(%d, %d)", INT_MIN, INT_MAX);
return 0;
}
short/long 限定符
C为您提供了两个限定符short和long,它们可以改变整数的大小。一般来说,短的通常是16位,长的至少是32位。
规则是short不大于int, int不大于long。然而,这取决于编译器是否遵守规则。
signed/unsigned整数
C提供了两个限定符,称为signed和unsigned,它们适用于任何整数。无符号整数总是正的和零。例如:
unsigned int quanity = 20;
signed int profit = 0;
下表展示了整数类型及其对应的同义词:
整数类型 同义词 注释
int signed,signed int
short short int,signed shor,signed short int
longlong int,signed long,signed long int
long long long long int,signed long long,signed long long int 从C99可用
C还为每个有符号整数类型提供了相应的无符号整数类型,该类型具有相同的内存大小。下表说明了无符号整数类型:
有符号整数类型 无符号整数类型
int unsigned int
short unsigned short
long unsigned long
long long unsigned long long
整数范围
C精确地定义了每个整数类型的最小存储大小,例如,short至少需要2个字节,long至少需要4个字节。
下面的表格显示了C中整数类型的常见大小:
类型 存储大小 最小值 最大值
char 1字节 -128 127
unsigned char 1字节 0 255
signed char 1字节 -128 127
int 2字节或4字节 -32768或-2147486648 32767或2147483647
unsigned int 2字节或4字节 0 65535或2147483647
short 2字节 -32768 32767
unsigned short 2字节 0 65535
long 4字节 -2147483648 2147483647
unsigned long 4字节 0 4294967295
long long(C99) 8字节 -9223372036854775808 9223372036854775807
unsigned long long 8字节 0 18446744073709551615
获得整型类型的大小
要获取整数类型的大小,可以使用sizeof()操作符,该操作符以字节为单位返回类型的大小。例如,下面的程序使用sizeof()操作符来获取各种整数类型的大小:
#include <stdio.h>
int main()
{
printf("sizeof(short) = %d bytes\n",sizeof(short));
printf("sizeof(int) = %d bytes\n",sizeof(int));
printf("sizeof(signed int) = %d bytes\n",sizeof(signed int));
printf("sizeof(long) = %d bytes\n",sizeof(long));
printf("sizeof(long long) = %d bytes\n",sizeof(long long));
return 0;
}
总结
。整数是整数,包括负数、0和正数。
。C语言使用int关键字来表示整型。
。整数的大小取决于程序运行的平台。
。limits.h具有指定最小和最大整数值的INT_MIN和INT_MAX。
。对整数类型应用有符号和无符号限定符来声明有符号和无符号整数。
。对整数类型应用短限定词和长限定词以更改整数类型的大小。
。使用sizeof()操作符获取以字节为单位的整数类型的大小。