因為1位二進制數可以表示(21=)2種狀態:0、1;而2位二進制數可以表示(22)=4種狀態:00、01、10、11;依次類推,7位二進制數可以表示(27=)128種狀態,每種狀態都唯一地編為一個7位的二進制碼,對應一個字符(或控制碼),這些碼可以排列成一個十進制序號0~127。所以,7位ASCII碼是用七位二進制數進行編碼的,可以表示128個字符。
第0~32號及第127號(共34個)是控制字符或通訊專用字符,如控制符:LF(換行)、CR(回車)、FF(換頁)、DEL(刪除)、BEL(振鈴)等;通訊專用字符:SOH(文頭)、EOT(文尾)、ACK(確認)等;
第33~126號(共94個)是字符,其中第48~57號為0~9十個阿拉伯數字;65~90號為26個大寫英文字母,97~122號為26個小寫英文字母,其余為一些標點符號、運算符號等。
注意:在計算機的存儲單元中,一個ASCII碼值占一個字節(8個二進制位),其最高位(b7)用作奇偶校驗位。所謂奇偶校驗,是指在代碼傳送過程中用來檢驗是否出現錯誤的一種方法,一般分奇校驗和偶校驗兩種。奇校驗規定:正確的代碼一個字節中1的個數必須是奇數,若非奇數,則在最高位b7添1;偶校驗規定:正確的代碼一個字節中1的個數必須是偶數,若非偶數,則在最高位b7添1。
附:
ASCII碼表完整版
ASCII值 |
16進制 |
控制字符 |
ASCII值 |
16進制 |
控制字符 |
0 |
00H |
NUT |
32 |
20H |
(space) |
1 |
01H |
SOH |
33 |
21H |
! |
2 |
02H |
STX |
34 |
22H |
” |
3 |
03H |
ETX |
35 |
23H |
# |
4 |
04H |
EOT |
36 |
24H |
$ |
5 |
05H |
ENQ |
37 |
25H |
% |
6 |
06H |
ACK |
38 |
26H |
& |
7 |
07H |
BEL |
39 |
27H |
, |
8 |
08H |
BS |
40 |
28H |
( |
9 |
09H |
HT |
41 |
29H |
) |
10 |
0AH |
LF |
42 |
2AH |
* |
11 |
0BH |
VT |
43 |
2BH |
+ |
12 |
0CH |
FF |
44 |
2CH |
, |
13 |
0DH |
CR |
45 |
2DH |
- |
14 |
0EH |
SO |
46 |
2EH |
. |
15 |
0FH |
SI |
47 |
2FH |
/ |
16 |
10H |
DLE |
48 |
30H |
0 |
17 |
11H |
DCI |
49 |
31H |
1 |
18 |
12H |
DC2 |
50 |
32H |
2 |
19 |
13H |
DC3 |
51 |
33H |
3 |
20 |
14H |
DC4 |
52 |
34H |
4 |
21 |
15H |
NAK |
53 |
35H |
5 |
22 |
16H |
SYN |
54 |
36H |
6 |
23 |
17H |
TB |
55 |
37H |
7 |
24 |
18H |
CAN |
56 |
38H |
8 |
25 |
19H |
EM |
57 |
39H |
9 |
26 |
1AH |
SUB |
58 |
3AH |
: |
27 |
1BH |
ESC |
59 |
3BH |
; |
28 |
1CH |
FS |
60 |
3CH |
< |
29 |
1DH |
GS |
61 |
3DH |
= |
30 |
1EH |
RS |
62 |
3EH |
> |
31 |
1FH |
US |
63 |
3FH |
? |
ASCII值 |
16進制 |
控制字符 |
ASCII值 |
16進制 |
控制字符 |
64 |
40H |
@ |
96 |
60H |
、 |
65 |
41H |
A |
97 |
61H |
a |
66 |
42H |
B |
98 |
62H |
b |
67 |
43H |
C |
99 |
63H |
c |
68 |
44H |
D |
100 |
64H |
d |
69 |
45H |
E |
101 |
65H |
e |
70 |
46H |
F |
102 |
66H |
f |
71 |
47H |
G |
103 |
67H |
g |
72 |
48H |
H |
104 |
68H |
h |
73 |
49H |
I |
105 |
69H |
i |
74 |
4AH |
J |
106 |
6AH |
j |
75 |
4BH |
K |
107 |
6BH |
k |
76 |
4CH |
L |
108 |
6CH |
l |
77 |
4DH |
M |
109 |
6DH |
m |
78 |
4EH |
N |
110 |
6EH |
n |
79 |
4FH |
O |
111 |
6FH |
o |
80 |
50H |
P |
112 |
70H |
p |
81 |
51H |
Q |
113 |
71H |
q |
82 |
52H |
R |
114 |
72H |
r |
83 |
53H |
X |
115 |
73H |
s |
84 |
54H |
T |
116 |
74H |
t |
85 |
55H |
U |
117 |
75H |
u |
86 |
56H |
V |
118 |
76H |
v |
87 |
57H |
W |
119 |
77H |
w |
88 |
58H |
X |
120 |
78H |
x |
89 |
59H |
Y |
121 |
79H |
y |
90 |
5AH |
Z |
122 |
7AH |
z |
91 |
5BH |
[ |
123 |
7BH |
{ |
92 |
5CH |
/ |
124 |
7CH |
| |
93 |
5DH |
] |
125 |
7DH |
} |
94 |
5EH |
^ |
126 |
7EH |
~ |
95 |
5FH |
— |
127 |
7FH |
DEL |
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 刪除 |
C\C++的轉義字符
所有的ASCII碼都可以用“\”加數字(一般是8進制數字)來表示。而C中定義了一些字母前加"\"來表示常見的那些不能顯示的ASCII字符,如\0,\t,\n等,就稱為轉義字符,因為后面的字符,都不是它本來的ASCII字符意思了。 轉義字符 意義 ASCII碼值(十進制) \a 響鈴(BEL) 007 \b 退格(BS) 008 \f 換頁(FF) 012 \n 換行(LF) 010 \r 回車(CR) 013 \t 水平制表(HT) 009 \v 垂直制表(VT) 011 \\ 反斜杠 092 \? 問號字符 063 \' 單引號字符 039 \" 雙引號字符 034 \0 空字符(NULL) 000 \ddd 任意字符 三位八進制 \xhh 任意字符 二位十六進制
\a:蜂鳴,響鈴
\b:回退:向后退一格
\f:換頁
\n:換行,光標到下行行首
\r:回車,光標到本行行首
\t:水平制表
\v:垂直制表
\\:反斜杠
\':單引號
\":雙引號
\?:問號
\ddd:三位八進制
\xhh:二位十六進制
\0:空字符(NULL),什么都不做
注:
1,\v垂直制表和\f換頁符對屏幕沒有任何影響,但會影響打印機執行響應操作。
2,\n其實應該叫回車換行。換行只是換一行,不改變光標的橫坐標;回車只是回到行首,不改變光標的縱坐標。
3,\t 光標向前移動四格或八格,可以在編譯器里設置
4,\' 在字符里(即單引號里)使用。在字符串里(即雙引號里)不需要,只要用 ' 即可。
5,\? 其實不必要。只要用 ? 就可以了(在windows VC6 和tc2 中驗證)。
鍵盤常用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) 方向鍵(←): VK_LEFT (37) F1鍵: VK_F1 (112) Num Lock鍵: VK_NUMLOCK (144) Pause Break鍵: VK_PAUSE (19) |