输出格式

对应数据类型

符号的含义

%d

int

输出一个有符号的10进制 int 类型

%o

unsigned int

输出8进制的 int 类型

%x

unsigned int

输出10进制的 int 类型,字母以小写输出

%X

unsigned int

输出10进制的 int 类型,字母以大写输出

%u

unsigned int

输出一个 10 进制的无符号整型

注:%x 用小写字母a ~ f来表示,%X用大写字母A ~ F来表示。无符号整型的最小值是0;

 #include <stdio.h> 

int main(){
int a = 12345; // 赋值十进制的变量
int b = 0014; // 赋值 8进制的变量
int c = 0x4d2; // 赋值16进制的变量
int d = 0;
int e = -1; // 赋值为-1转换为 无符号整型输出

printf("a = %d\n", a);
printf("8进制: b = %o\n", b);
printf("10进制:b = %d\n", b);
printf("16进制:b = %x\n", c);
printf("16进制:b = %X\n", c);
printf("10进制:b = %d\n", c);

printf("无符号整型 d 的 10进制: %u\n", d);
printf("无符号整型 e 的 10进制: %u\n", e); // 无符号整型的最小值是0;

return 0;
}

运行结果:
C语言 整型变量的输入和输出_数据类型

shortintlonglong long

数据类型

占用空间

short(短整型)

2字节

int(整型)

4字节

long(长整型)

Windows 为 4字节,Linuwx为4字节(32为), 8字节(64位)

long long (长长整型)

8字节

注:

  • short是短整型,一般short是int的一半大小,short在32位的windows下是2个字节。
  • 需要注意的是,整型数据在内存中占的字节数与所选择的操作系统有关。虽然C语言标准中没有明确规定整型数据的长度,但 long 类型整数的长度不能短于 int 类型,short 类型整数的长度不能短于 int 类型。
  • 当一个小的数据类型赋值给一个大的数据类型,不会出错,因为编译器会自动转换。但当一个大的类型赋值给一个小的数据类型,那么就可能丢失高位。

整型常量

所需类型

10

代表 int 类型

10l, 10L

代表 long 类型

10ll, 10LL

代表 long long 类型

10u, 10U

代表 unsigned int 类型

10ul,10IL

代表 unsigned long 类型

10ull, 10ULL

代表 unsigned long long 类型

输出格式

对应数据类型

符号的含义

%hd

short

输出 short 类型

%d

int

输出 int 类型

%l

long

输出 long 类型

%ll

long long

输出 long long 类型

%hu

unsigned short

输出 unsigned short 类型

%u

unsigned int

输出 unsigned int 类型

%lu

unsigned long

输出 unsigned long 类型

%llu

unsigned long long

输出 unsigned long long 类型

总结

整型后缀:

  • u 和 U 表示该整型常量为无符号类型。
  • l 和 L 表示该整型常量为long 型。

整型常量的数据类型由以下三个因素决定。

  • 该整型常量的值
  • 该整型常量的后缀
  • 所在编译器中各数据类型的表示范围

无后缀的十进制常量

int → long → unsigned long

无后缀的八进制或十六进制常量

int → unsigned → long → unsigned long

带后缀 u / U

unsigned → unsigned long

带后缀 l / L

long → unsigned long

带后缀 l / L 和 u / U

unsigned long