C语言整型详解

2024-01-08 09:33:51

1. 整数类型简介

1.1 类型说明

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

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

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

类型修饰符占用空间取值范围
short [int]signed2字节(=16位)-32768 ~ 32767 (- 2 15 2^{15} 215 ~ 2 15 2^{15} 215-1)
short [int]unsigned2字节(=16位)0 ~ 65535 (0 ~ 2 16 2^{16} 216-1)
intsigned通常4字节-2147483648 ~ 2147483647 (- 2 31 2^{31} 231 ~ 2 31 2^{31} 231-1)
intunsigned通常4字节0 ~ 4294967295 (0 ~ 2 32 2^{32} 232-1)
long [int]signed4字节或8字节4字节时:-2147483648 ~ 2147483647 (- 2 31 2^{31} 231 ~ 2 31 2^{31} 231-1)
long [int]unsigned4字节或8字节4字节时:-0 ~ 4294967295 (0 ~ 2 32 2^{32} 232-1)
long longsigned8字节(=64位)-9223372036854775808~ 9223372036854775807(- 2 63 2^{63} 263 ~ 2 63 2^{63} 263-1)
long longunsigned8字节(=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 <limits.h>

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

2. 精确宽度类型

#include <stdint.h>

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

3. 总结

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

文章来源:https://blog.csdn.net/qq_29752857/article/details/135427608
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。