📅  最后修改于: 2023-12-03 15:13:48.050000             🧑  作者: Mango
在 C 编程语言中,整数的位数取决于使用的数据类型。这些数据类型需要包括足够的位来存储要表示的数字,同时还需要足够的位来存储正负号和其他标志位。下面是 C 编程语言中一些常用的整数数据类型及其位数:
以上数据类型的具体位数取决于编译器和操作系统。
在实际开发中,我们应该选择适合我们应用的数据类型,以在存储数据时节省内存,提高效率。如果我们的应用需要存储一个很大的整数,我们可以使用 long long 类型。
下面是 C 语言中一些用于确定数据类型位数的宏:
#include <stdio.h>
#include <limits.h>
int main() {
printf("char 存储大小 : %d 字节\n", sizeof(char));
printf("short 存储大小 : %d 字节\n", sizeof(short));
printf("int 存储大小 : %d 字节\n", sizeof(int));
printf("long 存储大小 : %d 字节\n", sizeof(long));
printf("long long 存储大小 : %d 字节\n", sizeof(long long));
printf("char 最大值 : %d\n", CHAR_MAX);
printf("char 最小值 : %d\n", CHAR_MIN);
printf("signed char 最大值 : %d\n", SCHAR_MAX);
printf("signed char 最小值 : %d\n", SCHAR_MIN);
printf("unsigned char 最大值 : %d\n", UCHAR_MAX);
printf("short 最大值 : %d\n", SHRT_MAX);
printf("short 最小值 : %d\n", SHRT_MIN);
printf("int 最大值 : %d\n", INT_MAX);
printf("int 最小值 : %d\n", INT_MIN);
printf("unsigned int 最大值 : %u\n", UINT_MAX);
printf("long 最大值 : %ld\n", LONG_MAX);
printf("long 最小值 : %ld\n", LONG_MIN);
printf("unsigned long 最大值 : %lu\n", ULONG_MAX);
printf("long long 最大值 : %lld\n", LLONG_MAX);
printf("long long 最小值 : %lld\n", LLONG_MIN);
printf("unsigned long long 最大值 : %llu\n", ULLONG_MAX);
return 0;
}
输出:
char 存储大小 : 1 字节
short 存储大小 : 2 字节
int 存储大小 : 4 字节
long 存储大小 : 8 字节
long long 存储大小 : 8 字节
char 最大值 : 127
char 最小值 : -128
signed char 最大值 : 127
signed char 最小值 : -128
unsigned char 最大值 : 255
short 最大值 : 32767
short 最小值 : -32768
int 最大值 : 2147483647
int 最小值 : -2147483648
unsigned int 最大值 : 4294967295
long 最大值 : 9223372036854775807
long 最小值 : -9223372036854775808
unsigned long 最大值 : 18446744073709551615
long long 最大值 : 9223372036854775807
long long 最小值 : -9223372036854775808
unsigned long long 最大值 : 18446744073709551615
以上示例程序使用 sizeof
来确定不同数据类型的存储大小,并使用标准库头文件 limits.h
中定义的常量来确定它们的最大值和最小值。