数据类型
一、整型(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)−12^{(32-1)}-12(32−1)−1 (即 -2147483648 ~ 2147483647)将近±2.1×109±2.1×10^9±2.1×109
- 打印类型是 %d ,使用格式为 int 名 = 值;
(2)short类型
- 数据类型大小是 2 字节,能表示的数值范围是
- −2(16−1)-2^{(16-1)}−2(16−1) ~ 2(16−1)−12^{(16-1)} -12(16−1)−1 (即 -32768 ~ 32767)
- 打印类型是 %hd ,使用格式为 short 名 = 值;
(3)long类型
- 数据类型大小是 4 字节,能表示的数值范围是
- −2(32−1)-2^{(32-1)}−2(32−1) ~2(32−1)−12^{(32-1)}-12(32−1)−1 (即 -2147483648 ~ 2147483647)将近±2.1×109±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)−12^{(64-1)}-12(64−1)−1 (即-9,223,372,036,854,775,808~9,223,372,036,854,775,807) 将近±9.22×1018±9.22 × 10^{18}±9.22×1018
- 打印类型是 %lld ,使用格式为 long long 名 = 值;
2、无符号整型
无符号数用 unsigned 表示 ,只表示数据量,而没有方向(没有正负,且无符号数最高位不是符号位,而就是数的一部分,无符号数不可能是负数。
(1)unsigned int 类型
- 数据类型大小是 4 字节,能表示的数值范围是
- 000~232−12^{32}-1232−1 (即 0~4294967295)将近±4.2×109±4.2×10^{9}±4.2×109
- 打印类型是 %u ,使用格式为 unsigned int 名 = 值;
(2)unsigned short 类型
- 数据类型大小是 2 字节,能表示的数值范围是
- 000 ~ 28−12^{8} -128−1 (即 0~65535)
- 打印类型是 %hu ,使用格式为 unsigned short 名 = 值;
(3)unsigned long 类型
- 数据类型大小是 4 字节,能表示的数值范围是
- 000 ~ 232−12^{32}-1232−1 (即 0~4294967295)将近±4.2×109±4.2×10^{9}±4.2×109
- 打印类型是 %lu ,使用格式为 unsigned long 名 = 值;
(4)unsigned long long 类型
- 数据类型大小是 8 字节,能表示的数值范围是
- 000~264−12^{64}-1264−1 (即0~18,446,744,073,709,551,615) 将近 ±1.8×1019±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)−12^{(8-1)} -12(8−1)−1 (即 -128 ~ 127)
-
无符号: 000 ~ 28−12^8 -128−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)。