> 文章列表 > C语言从入门到精通第4天(1~3天的扩展)

C语言从入门到精通第4天(1~3天的扩展)

C语言从入门到精通第4天(1~3天的扩展)

1~3天的扩展

  • 拓展数据类型
  • sizeof关键字
  • 整型数据的打印格式
  • 字符类型的输出格式
  • ASCII码表
  • 转义字符
  • 进制

拓展数据类型

在开发过程中我们需要处理各种类型的数据,C语言处理基本类型还有其他的类型:
C语言从入门到精通第4天(1~3天的扩展)

sizeof关键字

C语言中可以通过sizeof关键字获取某个数据类型所占用的空间:

printf("%d\\n"sizeof(short));printf("%d\\n"sizeof(int));printf("%d\\n"sizeof(long));printf("%d\\n"sizeof(long long));

整型数据的打印格式

打印格式 含义
%hd 输出short类型
%d 输出int类型
%ld 输出long类型
%lld 输出long long类型
%hu 输出unsigned shor类型
%u 输出unsigned int类型
%lu 输出unsigned long类型
%llu 输出unsigned long long类型

字符类型的输出格式

char和unsigned char定义变量,使用 %c 输出

#include <stdio.h>
int main()
{char ch = 'A';printf("char: %c\\n", ch);return 0;
}

ASCII码表

ASCII值 控制字符 ASCII值 字符 ASCII值 字符 ASCII值 字符
0 NUT 32 (space) 64 @ 96
1 SOH 33 ! 65 A 97 a
2 STX 34 " 66 B 98 b
3 ETX 35 # 67 C 99 c
4 EOT 36 $ 68 D 100 d
5 ENQ 37 % 69 E 101 e
6 ACK 38 & 70 F 102 f
7 BEL 39 , 71 G 103 g
8 BS 40 ( 72 H 104 h
9 HT 41 ) 73 I 105 i
10 LF 42 * 74 J 106 j
11 VT 43 + 75 K 107 k
12 FF 44 , 76 L 108 l
13 CR 45 - 77 M 109 m
14 SO 46 . 78 N 110 n
15 SI 47 / 79 O 111 o
16 DLE 48 0 80 P 112 p
17 DCI 49 1 81 Q 113 q
18 DC2 50 2 82 R 114 r
19 DC3 51 3 83 S 115 s
20 DC4 52 4 84 T 116 t
21 NAK 53 5 85 U 117 u
22 SYN 54 6 86 V 118 v
23 TB 55 7 87 W 119 w
24 CAN 56 8 88 X 120 x
25 EM 57 9 89 Y 121 y
26 SUB 58 : 90 Z 122 z
27 ESC 59 ; 91 [ 123 {
28 FS 60 < 92 / 124
29 GS 61 = 93 ] 125 }
30 RS 62 > 94 ^ 126 `
31 US 63 ? 95 _ 127 DEL

ASCII 码大致由以下两部分组成:

  • ASCII 非打印控制字符: ASCII 表上数字 0-31 分配给了控制字符,用于控制打印机等一
    些外围设备。
  • ASCII 打印字符:数字 32-126 分配给了能在键盘上找到的字符,当查看或打印文档时就
    会出现。数字 127 代表 Del 命令。

转义字符

转义字符 含义
\\n 换行(LF) ,将当前位置移到下一行开头
\\r 回车(CR) ,将当前位置移到本行开头
\\t 水平制表(HT) (跳到下一个TAB位置)
\\\\ 代表一个反斜线字符"\\"
\\’ 代表一个单引号(撇号)字符
\\" 代表一个双引号字符
\\0 数字0 字符串结束标记

进制

  • 在计算机系统中,数值一律用补码来存储。
    补码的特点
    1)对于正数,补码就是原码(原始的二进制)
    2)对于负数,其补码为它的反码加1

负数的反码:绝对值的原码取反

十进制数 补码
+15 0000 1111
-15 1111 0001

进制也就是进位制,是人们规定的一种进位方法。 对于任何一种进制—X进制,就表示某一位置上
的数运算时是逢X进一位。 十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以
此类推,x进制就是逢x进位

十进制 二进制 八进制 十六进制
0 0 0 0
1 1 1 1
2 10 2 2
3 11 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F
16 10000 20 10

例如:

#include <stdio.h>
int main()
{int a = -15;printf("%x\\n", a);
//结果为 fffffff1
//fffffff1对应的二进制:1111 1111 1111 1111 1111 1111 1111 0001
//符号位不变,其它取反:1000 0000 0000 0000 0000 0000 0000 1110
//上面加1:1000 0000 0000 0000 0000 0000 0000 1111 最高位1代表负数,就是-15return 0;
}