C语言整型数据类型范围与整型常量后缀大全 [特殊字符]

文章目录

      • C语言整型数据类型范围与整型常量后缀大全
    • ️ 1. C 语言整型数据类型及其取值范围
      • 常见整型的位数和取值范围(以常见的 32 位和 64 位平台为例)
    • 2. C 语言整数常量后缀(数值常量)
      • ️ 常见整型常量的后缀
      • 示例代码:
      • 重要事项:
    • 3. 不同进制的整数常量表示法
    • 结论


C语言整型数据类型范围与整型常量后缀大全

C 语言中的整型数据类型丰富多样,每种类型的取值范围因编译器、操作系统和硬件架构(如 32 位和 64 位)而有所不同。本篇文章将详细介绍 C 语言各个整型的取值范围整型常量的后缀,并辅以表格与示例,助你轻松掌握!


️ 1. C 语言整型数据类型及其取值范围

C 语言的整型数据类型主要包括:

  1. char(字符型,也属于整型)
  2. short(短整型)
  3. int(整型)
  4. long(长整型)
  5. long long(更长的整型)
  6. unsigned(无符号整型)

由于 char 也可以存储整数,所以我们也会提及它的取值范围。

说明

  • 有符号(signed)整型可以存储 正数、负数和零
  • 无符号(unsigned)整型 只能存储非负整数
  • 取值范围主要受 位数(bit)补码表示法 影响。

常见整型的位数和取值范围(以常见的 32 位和 64 位平台为例)

类型 关键字 典型位数(bits) 取值范围(十进制)
char char 8 -128 ~ 127(signed) / 0 ~ 255(unsigned
short int short / short int 16 -32,768 ~ 32,767 / 0 ~ 65,535
int int 32 -2,147,483,648 ~ 2,147,483,647 / 0 ~ 4,294,967,295
long int long / long int 32 或 64 -2,147,483,648 ~ 2,147,483,647(32位)/ -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807(64位)
long long int long long / long long int 64 -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
unsigned char unsigned char 8 0 ~ 255
unsigned short unsigned short 16 0 ~ 65,535
unsigned int unsigned int 32 0 ~ 4,294,967,295
unsigned long unsigned long 32 或 64 0 ~ 4,294,967,295(32位)/ 0 ~ 18,446,744,073,709,551,615(64位)
unsigned long long unsigned long long 64 0 ~ 18,446,744,073,709,551,615

注意

  • int 默认是 signed,即 signed intint 是等价的。
  • long 在某些 64 位系统上(如 Linux)是 64 位,但在 Windows 上仍然是 32 位。
  • long long 在所有主流系统上都是 64 位。

2. C 语言整数常量后缀(数值常量)

在 C 语言中,整数常量(Integer Constant)可以使用 后缀 来指定其类型。合理使用后缀可以确保编译器正确解析数值类型,避免 溢出意外的类型转换

️ 常见整型常量的后缀

后缀 代表的类型 示例
U unsigned 100U (无符号)
L long 100L (长整型)
LL long long 100LL (超长整型)
UL unsigned long 100UL (无符号长整型)
ULL unsigned long long 100ULL (无符号超长整型)

示例代码:

#include 

int main() {
    int a = 100;         // 普通 int
    unsigned int b = 100U;   // 无符号 int
    long c = 100L;       // long int
    long long d = 100LL; // long long int
    unsigned long e = 100UL; // unsigned long
    unsigned long long f = 100ULL; // unsigned long long

    printf("a = %d\n", a);
    printf("b = %u\n", b);
    printf("c = %ld\n", c);
    printf("d = %lld\n", d);
    printf("e = %lu\n", e);
    printf("f = %llu\n", f);

    return 0;
}

重要事项:

  1. UL 大小写均可,如 100u / 100l 也有效,但建议用大写以防止混淆(小写 l 容易看成 1)。
  2. 多个后缀可以组合,但顺序必须是:
    • U(unsigned)
    • L(long)
    • LL(long long)
  3. 没有后缀的整数常量默认是 int 类型,如果数值超过 int 的范围,C 编译器会自动推断为更大的类型。

3. 不同进制的整数常量表示法

在 C 语言中,整数可以使用不同进制表示:

进制 语法 示例 说明
十进制 直接写 123 正常数字
八进制 0 开头 0123 0 开头的数字,代表八进制,0123 即十进制 83
十六进制 0x 开头 0x123 0x 开头,代表十六进制
二进制(C99 起) 0b 开头 0b1010 0b 开头,代表二进制(部分编译器不支持)

示例:

int a = 10;    // 十进制
int b = 012;   // 八进制 (等于十进制 10)
int c = 0xA;   // 十六进制 (等于十进制 10)
int d = 0b1010; // 二进制 (等于十进制 10, 仅部分编译器支持)

结论

  1. C 语言的整型数据类型有 char, short, int, long, long long,以及对应的 unsigned 版本,取值范围受系统影响。
  2. 通过 ULLL 等后缀可以显式声明整数常量的类型,避免溢出问题。
  3. C 语言支持 十进制、八进制、十六进制、二进制 表示整数,使用不同的前缀(00x0b)。

希望这篇文章能帮助你更好地理解 C 语言的整型数据!

你可能感兴趣的:(杂谈,c语言,开发语言,c++,软件构建,软件工程,后端)