C语言整型详解

1. 整数类型简介

1.1 类型说明

C语言定义了几种整数类型:短整型(short)、整型(int)、长整型(long)、更长的整型(long long)。这些类型可以被 signed 和 unsigned 修饰。

  • signed 修饰:带符号位,有正负号,可以表示负值。(默认情况)
  • unsigned 修饰:不带符号位,没有正负号,只能表示零和正整数。

计算机中的最小存储单位是 bit(位),1字节(byte)= 8位(bit)。

类型 修饰符 占用空间 取值范围
short [int] signed 2字节(=16位) -32768 ~ 32767 (- 2 15 2^{15} 215 ~ 2 15 2^{15} 215-1)
short [int] unsigned 2字节(=16位) 0 ~ 65535 (0 ~ 2 16 2^{16} 216-1)
int signed 通常4字节 -2147483648 ~ 2147483647 (- 2 31 2^{31} 231 ~ 2 31 2^{31} 231-1)
int unsigned 通常4字节 0 ~ 4294967295 (0 ~ 2 32 2^{32} 232-1)
long [int] signed 4字节或8字节 4字节时:-2147483648 ~ 2147483647 (- 2 31 2^{31} 231 ~ 2 31 2^{31} 231-1)
long [int] unsigned 4字节或8字节 4字节时:-0 ~ 4294967295 (0 ~ 2 32 2^{32} 232-1)
long long signed 8字节(=64位) -9223372036854775808~ 9223372036854775807(- 2 63 2^{63} 263 ~ 2 63 2^{63} 263-1)
long long unsigned 8字节(=64位) 0 ~ 18446744073709551615(0 ~ 2 64 2^{64} 264-1)

1.2 举例

1.2.1 signed 和 unsigned
signed int m;  // 等同于 int m;
unsigned int a;
1.2.2 类型简写
short a; 
long b;
long long c;
1.2.3 后缀用法
long x = 123L; // 或者写成 123l
long long y = 123LL;
unsigned int z = 123U;
unsigned long int w = 1234UL;

1.3 整数的极限值

#include 

int main() {
    printf("%d\n", INT_MIN  );  // -2147483648
    printf("%d\n", INT_MAX  );  // 2147483647
    return 0;
}

2. 精确宽度类型

#include 

int main() {
	int32_t x32 = 45933945;  // int32_t 类型,保证32位宽度。
	printf("x32 = %d\n", x32);
	return 0;
}

3. 总结

C语言的整数类型有着丰富的表达形式,各种类型和修饰符可以满足不同的需求。通过了解不同类型的取值范围和内存占用情况,我们能够更有效地利用整数类型。同时,精确宽度类型的使用可以增强代码的可移植性。

你可能感兴趣的:(c,c语言,开发语言)