数据类型
一、整型(int、short、long、long long)
1、有符号整型
有符号整型的数据类型通常包括 int、short、long、long long 四种,因为是有符号类型,所以前面要加上 signed ,但是通常省略,也就是说在代码中直接打出 int 类型就代表是有符号类型的。
在编程竞赛中,通常用到的为int类型、long long类型,需要记住其具体的范围。
(1)int类型
- 数据类型大小是 4 字节,能表示的数值范围是
- − 2 ( 32 − 1 ) -2^{(32-1)} −2(32−1) ~ 2 ( 32 − 1 ) − 1 2^{(32-1)}-1 2(32−1)−1 (即 -2147483648 ~ 2147483647)将近 ± 2.1 × 1 0 9 ±2.1×10^9 ±2.1×109
- 打印类型是 %d ,使用格式为 int 名 = 值;
(2)short类型
- 数据类型大小是 2 字节,能表示的数值范围是
- − 2 ( 16 − 1 ) -2^{(16-1)} −2(16−1) ~ 2 ( 16 − 1 ) − 1 2^{(16-1)} -1 2(16−1)−1 (即 -32768 ~ 32767)
- 打印类型是 %hd ,使用格式为 short 名 = 值;
(3)long类型
- 数据类型大小是 4 字节,能表示的数值范围是
- − 2 ( 32 − 1 ) -2^{(32-1)} −2(32−1) ~ 2 ( 32 − 1 ) − 1 2^{(32-1)}-1 2(32−1)−1 (即 -2147483648 ~ 2147483647)将近 ± 2.1 × 1 0 9 ±2.1×10^9 ±2.1×109
- 打印类型是 %ld ,使用格式为 int 名 = 值;
(4)long long类型
- 数据类型大小是 8 字节,能表示的数值范围是
- − 2 ( 64 − 1 ) -2^{(64-1)} −2(64−1) ~ 2 ( 64 − 1 ) − 1 2^{(64-1)}-1 2(64−1)−1 (即-9,223,372,036,854,775,808~9,223,372,036,854,775,807) 将近 ± 9.22 × 1 0 18 ±9.22 × 10^{18} ±9.22×1018
- 打印类型是 %lld ,使用格式为 long long 名 = 值;
2、无符号整型
无符号数用 unsigned 表示 ,只表示数据量,而没有方向(没有正负,且无符号数最高位不是符号位,而就是数的一部分,无符号数不可能是负数。
(1)unsigned int 类型
- 数据类型大小是 4 字节,能表示的数值范围是
- 0 0 0~ 2 32 − 1 2^{32}-1 232−1 (即 0~4294967295)将近 ± 4.2 × 1 0 9 ±4.2×10^{9} ±4.2×109
- 打印类型是 %u ,使用格式为 unsigned int 名 = 值;
(2)unsigned short 类型
- 数据类型大小是 2 字节,能表示的数值范围是
- 0 0 0 ~ 2 8 − 1 2^{8} -1 28−1 (即 0~65535)
- 打印类型是 %hu ,使用格式为 unsigned short 名 = 值;
(3)unsigned long 类型
- 数据类型大小是 4 字节,能表示的数值范围是
- 0 0 0 ~ 2 32 − 1 2^{32}-1 232−1 (即 0~4294967295)将近 ± 4.2 × 1 0 9 ±4.2×10^{9} ±4.2×109
- 打印类型是 %lu ,使用格式为 unsigned long 名 = 值;
(4)unsigned long long 类型
- 数据类型大小是 8 字节,能表示的数值范围是
- 0 0 0~ 2 64 − 1 2^{64}-1 264−1 (即0~18,446,744,073,709,551,615) 将近 ± 1.8 × 1 0 19 ±1.8×10^{19} ±1.8×1019
- 打印类型是 %llu ,使用格式为 unsigned long long 名 = 值;
二、 字符型(char)
字符型变量用于存储一个单一字符,在 C 语言中用 char 表示,其中每个字符变量都会占用 1 个字节。在给字符型变量赋值时,需要用一对英文半角格式的单引号(’ ')把字符括起来。字符变量实际上并不是把该字符本身放到变量的内存单元中去,而是将该字符对应的 ASCII 编码放到变量的存储单元中。char的本质就是一个1字节大小的整型。
-
char 的格式匹配符(打印格式) 为:%c
-
数值表示范围是:
-
有符号: − 2 ( 8 − 1 ) -2^{(8-1)} −2(8−1) – 2 ( 8 − 1 ) − 1 2^{(8-1)} -1 2(8−1)−1 (即 -128 ~ 127)
-
无符号: 0 0 0 ~ 2 8 − 1 2^8 -1 28−1 (即 0~255)
常用的ASCLL码为:
-
A
:65 -
‘A’:65
-
a
:97(大小写相差 32 ) -
0
:48 -
\n
:10 -
\0
: 0
三、浮点型(float、double)
(1)单精度浮点型(float)
单精度浮点型的大小是 4 字节
float v1 = 4.345;
unsigned float v1 = 4.345; // 无符号的 float 数据
格式匹配符是:%f
, 默认保留 6 位小数。
(2)双精度浮点型(double)
双精度浮点型的大小为 8 字节
double v2 = 5.678;
unsigned double v2 = 5.678; // 无符号的 double 数据
C语言中的 %lf
通常用于 scanf
函数读取双精度浮点数,而在 printf
函数中,使用 %f
来输出双精度浮点数(double)。
// 无符号的 double 数据
C语言中的 %lf
通常用于 scanf
函数读取双精度浮点数,而在 printf
函数中,使用 %f
来输出双精度浮点数(double)。