学习笔记char,ASCII码对照表

【学习笔记】【C语言】char类型,学习笔记char

参考https://zh.wikipedia.org/wiki/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

1. 存储细节

ASCII单字节表(双字节GBK\GB2312\GB18030\Unicode)

ASCII, American Standard Code for Information Interchange 念起来像是 ”
阿斯key”,定义从 0 到 127
的一百二十八个数字所代表的英文字母或一样的结果与
意义。由于只使用7个位元(bit)就可以表示从0到127的数字,大部分的电脑都使
用8个位元来存取字元集(character set),所以从128到255之间的数字可以用来代
表另一组一百二十八个符号,称为 extended ASCII。

NUL VT 垂直制表 SYN 空转同步
SOH 标题开始 FF   走纸控制 ETB 信息组传送结束
STX 正文开始 CR   回车 CAN 作废
ETX 正文结束 SO   移位输出 EM   纸尽
EOY 传输结束 SI    移位输入 SUB 换置
ENQ 询问字符 DLE 空格 ESC 换码
ACK 承认 DC1 设备控制1 FS   文字分隔符
BEL 报警 DC2 设备控制2 GS   组分隔符
BS   退一格 DC3 设备控制3 RS   记录分隔符
HT   横向列表 DC4 设备控制4 US   单元分隔符
LF   换行 NAK 否定 DEL 删除

2. 常见错误

char c = A;

char c = “A”;

char c = ‘ABCD’;

char c = ‘男’;

目前计算机中用得最广泛的字符集及其编码,是由美国国家标准局(ANSI)制定的ASCII码
(American Standard Code for Information
Interchange,美国标准信息交换码),它已被国际标准化组织(ISO)定为
国际标准,称为ISO
646标准。适用于所有拉丁文字字母,ASCII码有7位码和8位码两种形式。

键盘常用ASCII码

3. 当做整型使用

在-128~127范围内,可以当做整数来用

因为1位二进制数可以表示(21=)2种状态:0、1;而2位二进制数可以表示(22)=4种状态:00、01、10、11;依次类
推,7位二进制数可以表示(27=)128种状态,每种状态都唯一地编为一个7位的二进制码,对应一个字符(或控制码),这些
码可以排列成一个十进制序号0~127。所以,7位ASCII码是用七位二进制数进行编码的,可以表示128个字符。

ESC键

4. %c和%d\%i的使用

printf(“%d”, ‘A’);

printf(“%c”, 68);

第0~32号及第127号(共34个)是控制字符或通讯专用字符,如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删
除)、BEL(振铃)等;通讯专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等;

VK_ESCAPE
(27)

5. 转义字符

转义字符

意义

ASCII码值

\n

将当前位置移到下一行开头(回车换行)

10

\t

跳到下一个TAB位置

9

\\

代表一个反斜线字符

92

\’

代表一个单引号字符

39

\"

代表一个双引号字符

34

\0

空字符

0

 

6.ASCII码对照表

(二进)Bin    (十进)Dec   (十六进)Hex        
缩写/字符                                       解释
0000 0000     0           00             NUL
(null)                                      
空字符   
0000 0001     1           01             SOH (start of
handing)                  
标题开始 
0000 0010     2           02             STX (start of
text)                          
正文开始 
0000 0011     3           03             ETX (end of
text)                          
正文结束
0000 0100     4           04             EOT (end of
transmission)            
传输结束 
0000 0101     5           05             ENQ
(enquiry)                              
请求 
0000 0110     6           06             ACK
(acknowledge)                      
收到通知 
0000 0111     7           07             BEL
(bell)                                      
响铃
0000 1000     8           08             BS
(backspace)                            
退格 
0000 1001     9           09             HT (horizontal
tab)                        
水平制表符 
0000 1010     10         0A             LF (NL line feed, new
line)            
换行键 
0000 1011     11         0B             VT (vertical
tab)                            
垂直制表符 
0000 1100     12         0C             FF (NP form feed, new
page)        
换页键 
0000 1101     13         0D             CR (carriage
return)                      
回车键
0000 1110     14         0E             SO (shift
out)                                
不用切换 
0000 1111     15         0F             SI (shift
in)                                    
启用切换 
0001 0000     16         10             DLE (data link
escape)                  
数据链路转义 
0001 0001     17         11             DC1 (device control
1)                  
设备控制1 
0001 0010     18         12             DC2 (device control
2)                  
设备控制2 
0001 0011     19         13             DC3 (device control
3)                  
设备控制3 
0001 0100     20         14             DC4 (device control
4)                  
设备控制4 
0001 0101     21         15             NAK (negative
acknowledge)        
拒绝接收 
0001 0110     22         16             SYN (synchronous
idle)                
同步空闲 
0001 0111     23         17             ETB (end of trans.
block)              
传输块结束 
0001 1000     24         18             CAN
(cancel)                                
取消
0001 1001     25         19             EM (end of
medium)                      
介质中断 
0001 1010     26         1A             SUB
(substitute)                            
替补 
0001 1011     27         1B             ESC
(escape)                                
溢出 
0001 1100     28         1C             FS (file
separator)                        
文件分割符 
0001 1101     29         1D             GS (group
separator)                    
分组符 
0001 1110     30         1E             RS (record
separator)                  
记录分离符 
0001 1111     31         1F             US (unit
separator)                        
单元分隔符 
0010 0000     32         20            
空格
0010 0001     33         21             !
0010 0010     34         22             “
0010 0011     35         23             #
0010 0100     36         24             $
0010 0101     37         25             %
0010 0110     38         26             &
0010 0111     39         27             ‘
0010 1000     40         28             (
0010 1001     41         29             )
0010 1010     42         2A             *
0010 1011     43         2B             +
0010 1100     44         2C             ,
0010 1101     45         2D             –
0010 1110     46         2E             .
0010 1111     47         2F             /
0011 0000     48         30             0
0011 0001     49         31             1
0011 0010     50         32             2
0011 0011     51         33             3
0011 0100     52         34             4
0011 0101     53         35             5
0011 0110     54         36             6
0011 0111     55         37             7
0011 1000     56         38             8
0011 1001     57         39             9
0011 1010     58         3A             :
0011 1011     59         3B             ;
0011 1100     60         3C             <
0011 1101     61         3D             =
0011 1110     62         3E             >
0011 1111     63         3F             ?
0100 0000     64         40             @
0100 0001     65         41             A
0100 0010     66         42             B
0100 0011     67         43             C
0100 0100     68         44             D
0100 0101     69         45             E
0100 0110     70         46             F
0100 0111     71         47             G
0100 1000     72         48             H
0100 1001     73         49             I
0100 1010     74         4A             J
0100 1011     75         4B             K
0100 1100     76         4C             L
0100 1101     77         4D             M
0100 1110     78         4E             N
0100 1111     79         4F             O
0101 0000     80         50             P
0101 0001     81         51             Q
0101 0010     82         52             R
0101 0011     83         53             S
0101 0100     84         54             T
0101 0101     85         55             U
0101 0110     86         56             V
0101 0111     87         57             W
0101 1000     88         58             X
0101 1001     89         59             Y
0101 1010     90         5A             Z
0101 1011     91         5B             [
0101 1100     92         5C             \
0101 1101     93         5D             ]
0101 1110     94         5E             ^
0101 1111     95         5F             _
0110 0000     96         60             `
0110 0001     97         61             a
0110 0010     98         62             b
0110 0011     99         63             c
0110 0100     100       64             d
0110 0101     101       65             e
0110 0110     102       66             f
0110 0111     103       67             g
0110 1000     104       68             h
0110 1001     105       69             i
0110 1010     106       6A             j
0110 1011     107       6B             k
0110 1100     108       6C             l
0110 1101     109       6D             m
0110 1110     110       6E             n
0110 1111     111       6F             o
0111 0000     112       70             p
0111 0001     113       71             q
0111 0010     114       72             r
0111 0011     115       73             s
0111 0100     116       74             t
0111 0101     117       75             u
0111 0110     118       76             v
0111 0111     119       77             w
0111 1000     120       78             x
0111 1001     121       79             y
0111 1010     122       7A             z
0111 1011     123       7B             {
0111 1100     124       7C             |
0111 1101     125       7D             }
0111 1110     126       7E             ~  
0111 1111     127       7F             DEL
(delete)                                
删除 

键盘常用ASCII码(十进制表示值)

ESC键           VK_ESCAPE (27)
回车键:        VK_RETURN (13)
TAB键:       VK_TAB (9)
Caps Lock键: VK_CAPITAL (20)
Shift键:         VK_SHIFT (16)
Ctrl键:         VK_CONTROL (17)
Alt键:          VK_MENU (18)
空格键:         VK_SPACE (/32)
退格键:         VK_BACK (8)
左徽标键: VK_LWIN (91)
右徽标键:    VK_LWIN (92)
鼠标右键快捷键:VK_APPS (93)
Insert键:        VK_INSERT (45)
Home键:        VK_HOME (36)
Page Up:       VK_PRIOR (33)
PageDown: VK_NEXT (34)
End键:          VK_END (35)
Delete键:       VK_DELETE (46)
方向键(←):    VK_LEFT (37)
方向键(↑):    VK_UP (38)
方向键(→):    VK_RIGHT (39)
方向键(↓):    VK_DOWN (40)
F1键:             VK_F1 (112)
F2键:             VK_F2 (113)
F3键:             VK_F3 (114)
F4键:             VK_F4 (115)
F5键:             VK_F5 (116)
F6键:             VK_F6 (117)
F7键:             VK_F7 (118)
F8键:             VK_F8 (119)
F9键:             VK_F9 (120)
F10键:           VK_F10 (121)
F11键:           VK_F11 (122)
F12键:          VK_F12 (123)
Num Lock键: VK_NUMLOCK (144)
小键盘0:        VK_NUMPAD0 (96)
小键盘1:         VK_NUMPAD0 (97)
小键盘2:         VK_NUMPAD0 (98)
小键盘3:         VK_NUMPAD0 (99)
小键盘4:        VK_NUMPAD0 (100)
小键盘5:        VK_NUMPAD0 (101)
小键盘6:         VK_NUMPAD0 (102)
小键盘7:         VK_NUMPAD0 (103)
小键盘8:         VK_NUMPAD0 (104)
小键盘9:        VK_NUMPAD0 (105)
小键盘.:         VK_DECIMAL (110)
小键盘*:         VK_MULTIPLY (106)
小键盘+:         VK_MULTIPLY (107)
小键盘-:         VK_SUBTRACT (109)
小键盘/:         VK_DIVIDE (111)
Pause Break键: VK_PAUSE (19)
Scroll Lock键: VK_SCROLL (145)

7.代码

 1 #include <stdio.h>
 2 
 3 int main()
 4 {
 5     //0000 0000 0000 0000 0000 0000 0000 1001
 6     int a = 9;
 7     
 8     // 0100 0001
 9     char c = 'A';
10     
11     //printf("%c\n", 67);
12     
13     
14     //printf("%d\n", 'D');
15     
16     //char c2 = 'A' + 33; // 98
17     
18     //printf("%c - %d \n", c2 , c2);
19     
20     
21     /*
22      ASCII码表
23      字符   ASCII码值
24       A       65
25       B       66
26       C       67
27      
28      */
29     
30     
31     // 00000000000000 110
32     int num = 6;
33     
34     // 54 = 32 + 16 + 4 + 2
35     // 0011 0110
36     char c2 = '6';
37     
38     printf("%d - %d\n", num, c2);
39     
40     return 0;
41 }

 1 #include <stdio.h>
 2 
 3 int main()
 4 {
 5     // 单引号''只能扩住单字节的字符
 6     // char c = '男'; // 错误写法
 7     
 8     
 9     //char c = "A";// 错误写法
10     
11     
12     // char c = A; // 错误写法
13     
14     // char c = 65;
15     
16     // printf("%c\n", c);
17     
18     /*
19     char c = 'A';
20     switch (c) {
21         case 'A':
22             printf("1\n");
23             break;
24         case 65:
25             printf("2\n");
26             break;
27         default:
28             printf("3\n");
29             break;
30     }*/
31     
32     // -128 ~ 127
33     //char c = 655894389754367857684;
34     
35     
36     //printf("%d\n", '\n');
37     
38     printf("\"\n");
39     
40     return 0;
41 }

练习

 1 #include <stdio.h>
 2 /*
 3  1.说出下面程序的输出结构
 4  int i = 67 + '4';
 5  char c = 'c' - 10;
 6  
 7  printf("%d - %c\n", i, i);
 8  printf("%d - %c\n", c, c);
 9  
10  
11  2.写一个函数,将小写字母转为大写
12  
13  */
14 
15 char upper(char c)
16 {
17     // 如果是小写字母,就转成大写
18     /*
19     if (c>='a' && c<='z') { // ['a', 'z']
20         return c - ('a'-'A');
21     } else {// 如果不是小写字母,返回字母本身
22         return c;
23     }*/
24     
25     // 如果是小写字母,就转成大写
26     if (c>='a' && c<='z') { // ['a', 'z']
27         return c - ('a'-'A');
28     }
29     // 如果不是小写字母,返回字母本身
30     return c;
31 }
32 
33 int main()
34 {
35     char cc = upper('f');
36     
37     printf("%c\n", cc);
38     return 0;
39 }

 

1.
存储细节 ASCII单字节表(双字节GBK\GB2312\GB18030\Unicode) 2.
常见错误 char c = A; char c = “A”; ch…

第33~126号(共94个)是字符,其中第48~57号为0~9十个阿拉伯数字;65~90号为26个大写英文字母,97~122号
为26个小写英文字母,其余为一些标点符号、运算符号等。

回车键:

注意:在计算机的存储单元中,一个ASCII码值占一个字节(8个二进制位),其最高位(b7)用作奇偶校验位。所谓奇偶校验,是
指在代码传送过程中用来检验是否出现错误的一种方法,一般分奇校验和偶校验两种。奇校验规定:正确的代码一个字节中1的
个数必须是奇数,若非奇数,则在最高位b7添1;偶校验规定:正确的代码一个字节中1的个数必须是偶数,若非偶数,则在最
高位b7添1。 附:

VK_RETURN
(13)

ASCII控制字符

二进制 十进制 十六进制 缩写 可以显示的表示法 名称/意义
0000 0000 0 00 NUL ␀ 空字符(Null)
0000 0001 1 01 SOH ␁ 标题开始
0000 0010 2 02 STX ␂ 正文开始
0000 0011 3 03 ETX ␃ 正文结束
0000 0100 4 04 EOT ␄ 传输结束
0000 0101 5 05 ENQ ␅ 请求 询问字符
0000 0110 6 06 ACK ␆ 确认回应 承认
0000 0111 7 07 BEL ␇ 响铃 报警
0000 1000 8 08 BS ␈ 退格
0000 1001 9 09 HT ␉ 水平定位符号
0000 1010 10 0A LF ␊ 换行键
0000 1011 11 0B VT ␋ 垂直定位符号
0000 1100 12 0C FF ␌ 换页键
0000 1101 13 0D CR ␍ 归位键
0000 1110 14 0E SO ␎ 取消变换(Shift out)
0000 1111 15 0F SI ␏ 启用变换(Shift in)
0001 0000 16 10 DLE ␐ 跳出数据通讯
0001 0001 17 11 DC1 ␑ 设备控制一(XON 启用软件速度控制)
0001 0010 18 12 DC2 ␒ 设备控制二
0001 0011 19 13 DC3 ␓ 设备控制三(XOFF 停用软件速度控制)
0001 0100 20 14 DC4 ␔ 设备控制四
0001 0101 21 15 NAK ␕ 确认失败回应
0001 0110 22 16 SYN ␖ 同步用暂停
0001 0111 23 17 ETB ␗ 区块传输结束
0001 1000 24 18 CAN ␘ 取消
0001 1001 25 19 EM ␙ 连接介质中断
0001 1010 26 1A SUB ␚ 替换
0001 1011 27 1B ESC ␛ 跳出
0001 1100 28 1C FS ␜ 文件分割符
0001 1101 29 1D GS ␝ 组群分隔符
0001 1110 30 1E RS ␞ 记录分隔符
0001 1111 31 1F US ␟ 单元分隔符
0111 1111 127 7F DEL ␡ 删除

VT 垂直制表
FF 走纸控制
CR 回车
SO 移位输出
SI 移位输入
DLE 空格
DC1 设备控制1
DC2 设备控制2
DC3 设备控制3
DC4 设备控制4
SYN 空转同步
ETB 信息组传送结束 CAN 作废
EM 纸尽
SUB 换置
ESC 换码
FS 文字分隔符
GS 组分隔符
RS 记录分隔符
US 单元分隔符
LF 换行
NAK 否定
DEL 删除

TAB键:

ASCII可显示字符

二进制 十进制 十六进制 图形
0010 0000 32 20 (空格)
0010 0001 33 21 !
0010 0010 34 22 “
0010 0011 35 23 #
0010 0100 36 24 $
0010 0101 37 25 %
0010 0110 38 26 &
0010 0111 39 27 ‘
0010 1000 40 28 (
0010 1001 41 29 )
0010 1010 42 2A *
0010 1011 43 2B +
0010 1100 44 2C ,
0010 1101 45 2D –
0010 1110 46 2E .
0010 1111 47 2F /
0011 0000 48 30 0
0011 0001 49 31 1
0011 0010 50 32 2
0011 0011 51 33 3
0011 0100 52 34 4
0011 0101 53 35 5
0011 0110 54 36 6
0011 0111 55 37 7
0011 1000 56 38 8
0011 1001 57 39 9
0011 1010 58 3A :
0011 1011 59 3B ;
0011 1100 60 3C <
0011 1101 61 3D =
0011 1110 62 3E >
0011 1111 63 3F ?

0100 0000 64 40 @
0100 0001 65 41 A
0100 0010 66 42 B
0100 0011 67 43 C
0100 0100 68 44 D
0100 0101 69 45 E
0100 0110 70 46 F
0100 0111 71 47 G
0100 1000 72 48 H
0100 1001 73 49 I
0100 1010 74 4A J
0100 1011 75 4B K
0100 1100 76 4C L
0100 1101 77 4D M
0100 1110 78 4E N
0100 1111 79 4F O
0101 0000 80 50 P
0101 0001 81 51 Q
0101 0010 82 52 R
0101 0011 83 53 S
0101 0100 84 54 T
0101 0101 85 55 U
0101 0110 86 56 V
0101 0111 87 57 W
0101 1000 88 58 X
0101 1001 89 59 Y
0101 1010 90 5A Z
0101 1011 91 5B [
0101 1100 92 5C
0101 1101 93 5D ]
0101 1110 94 5E ^
0101 1111 95 5F _

0110 0000 96 60 `
0110 0001 97 61 a
0110 0010 98 62 b
0110 0011 99 63 c
0110 0100 100 64 d
0110 0101 101 65 e
0110 0110 102 66 f
0110 0111 103 67 g
0110 1000 104 68 h
0110 1001 105 69 i
0110 1010 106 6A j
0110 1011 107 6B k
0110 1100 108 6C l
0110 1101 109 6D m
0110 1110 110 6E n
0110 1111 111 6F o
0111 0000 112 70 p
0111 0001 113 71 q
0111 0010 114 72 r
0111 0011 115 73 s
0111 0100 116 74 t
0111 0101 117 75 u
0111 0110 118 76 v
0111 0111 119 77 w
0111 1000 120 78 x
0111 1001 121 79 y
0111 1010 122 7A z
0111 1011 123 7B {
0111 1100 124 7C |
0111 1101 125 7D }
0111 1110 126 7E ~

VK_TAB
(9)

键盘常用ASCII码

ESC键 VK_ESCAPE (27)
回车键: VK_RETURN (13)
TAB键: VK_TAB (9)
Caps Lock键: VK_CAPITAL (20)
Shift键: VK_SHIFT ($10)
Ctrl键: VK_CONTROL (17)
Alt键: VK_MENU (18)
空格键: VK_SPACE ($20/32)
退格键: VK_BACK (8)
左徽标键: VK_LWIN (91)
右徽标键: VK_LWIN (92)
鼠标右键快捷键:VK_APPS (93)
Insert键: VK_INSERT (45)
Home键: VK_HOME (36)
Page Up: VK_PRIOR (33)
PageDown: VK_NEXT (34)
End键: VK_END (35)
Delete键: VK_DELETE (46)
方向键(←): VK_LEFT (37)
方向键(↑): VK_UP (38)
方向键(→): VK_RIGHT (39)
方向键(↓): VK_DOWN (40)
F1键: VK_F1 (112)
F2键: VK_F2 (113)
F3键: VK_F3 (114)
F4键: VK_F4 (115)
F5键: VK_F5 (116)
F6键: VK_F6 (117)
F7键: VK_F7 (118)
F8键: VK_F8 (119)
F9键: VK_F9 (120)
F10键: VK_F10 (121)
F11键: VK_F11 (122)
F12键: VK_F12 (123)

Num Lock键: VK_NUMLOCK (144)
小键盘0: VK_NUMPAD0 (96)
小键盘1: VK_NUMPAD0 (97)
小键盘2: VK_NUMPAD0 (98)
小键盘3: VK_NUMPAD0 (99)
小键盘4: VK_NUMPAD0 (100)
小键盘5: VK_NUMPAD0 (101)
小键盘6: VK_NUMPAD0 (102)
小键盘7: VK_NUMPAD0 (103)
小键盘8: VK_NUMPAD0 (104)
小键盘9: VK_NUMPAD0 (105)
小键盘.: VK_DECIMAL (110)
小键盘*: VK_MULTIPLY (106)
小键盘+: VK_MULTIPLY (107)
小键盘-: VK_SUBTRACT (109)
小键盘/: VK_DIVIDE (111)
Pause Break键: VK_PAUSE (19)
Scroll Lock键: VK_SCROLL (145)

Caps
Lock键:

VK_CAPITAL
(20)

Shift键:

VK_SHIFT
($10)

Ctrl键:

VK_CONTROL
(17)

Alt键:

VK_MENU
(18)

空格键:

VK_SPACE
($20/32)

退格键:

VK_BACK
(8)

左徽标键:

VK_LWIN
(91)

右徽标键:

VK_LWIN
(92)

鼠标右键快捷键:

VK_APPS
(93)

Insert键:

VK_INSERT
(45)

Home键:

VK_HOME
(36)

Page
Up:

VK_PRIOR
(33)

PageDown:

VK_NEXT
(34)

End键:

网站地图xml地图