104 鍵 PC 美式英語 QWERTY 鍵盤佈局源自標準打字機鍵盤,並增加了用於計算的額外部索引鍵。
ASCII 通常使用 8 位(1 位元組)來儲存每個字元。但是,第 8 位用作校驗位,這意味著只有 7 位可用作儲存每個字元。這使得 ASCII 能夠儲存總計
2^7 = 128 different values.
95 個可列印的 ASCII 字元,編號從 32 到 126(十進位制)
ASCII 值可以採用多種形式
- 數字
- 字母(大寫和小寫是分開的)
- 標點符號(?/|\£$ 等)
- 非列印命令(回車、轉義、F1)
看看你的鍵盤,看看你總共有多少個不同的鍵。對於 Windows 鍵盤,數量應該是 104,或者對於傳統鍵盤則是 101。考慮到 shift 功能值(a,A; b,B 等)以及一些鍵具有重複功能(兩個 shift 鍵,數字鍵盤)。我們大致有 128 種鍵盤可以執行的功能。
| 二進位制 |
十進位制 |
十六進位制 |
縮寫 |
| 000 0000 |
0 |
00
|
NUL
|
| 000 0001 |
1 |
01
|
SOH
|
| 000 0010 |
2 |
02
|
STX
|
| 000 0011 |
3 |
03
|
ETX
|
| 000 0100 |
4 |
04
|
EOT
|
| 000 0101 |
5 |
05
|
ENQ
|
| 000 0110 |
6 |
06
|
ACK
|
| 000 0111 |
7 |
07
|
BEL
|
| 000 1000 |
8 |
08
|
BS
|
| 000 1001 |
9 |
09
|
HT
|
| 000 1010 |
10 |
0A |
LF
|
| 000 1011 |
11 |
0B |
VT
|
| 000 1100 |
12 |
0C |
FF
|
| 000 1101 |
13 |
0D |
CR
|
| 000 1110 |
14 |
0E |
SO
|
| 000 1111 |
15 |
0F |
SI
|
| 001 0000 |
16 |
10
|
DLE
|
| 001 0001 |
17 |
11
|
DC1
|
| 001 0010 |
18 |
12
|
DC2
|
| 001 0011 |
19 |
13
|
DC3
|
| 001 0100 |
20 |
14
|
DC4
|
| 001 0101 |
21 |
15
|
NAK
|
| 001 0110 |
22 |
16
|
SYN
|
| 001 0111 |
23 |
17
|
ETB
|
| 001 1000 |
24 |
18
|
CAN
|
| 001 1001 |
25 |
19
|
EM
|
| 001 1010 |
26 |
1A |
SUB
|
| 001 1011 |
27 |
1B |
ESC
|
| 001 1100 |
28 |
1C |
FS
|
| 001 1101 |
29 |
1D |
GS
|
| 001 1110 |
30 |
1E |
RS
|
| 001 1111 |
31 |
1F |
US
|
|
|
| 111 1111 |
127 |
7F |
DEL
|
|
| 二進位制 |
十進位制 |
十六進位制 |
字形 |
| 010 0000 |
32 |
20 |
?
|
| 010 0001 |
33 |
21 |
!
|
| 010 0010 |
34 |
22 |
"
|
| 010 0011 |
35 |
23 |
#
|
| 010 0100 |
36 |
24 |
$
|
| 010 0101 |
37 |
25 |
%
|
| 010 0110 |
38 |
26 |
&
|
| 010 0111 |
39 |
27 |
'
|
| 010 1000 |
40 |
28 |
(
|
| 010 1001 |
41 |
29 |
)
|
| 010 1010 |
42 |
2A |
*
|
| 010 1011 |
43 |
2B |
+
|
| 010 1100 |
44 |
2C |
,
|
| 010 1101 |
45 |
2D |
-
|
| 010 1110 |
46 |
2E |
.
|
| 010 1111 |
47 |
2F |
/
|
| 011 0000 |
48 |
30 |
0
|
| 011 0001 |
49 |
31 |
1
|
| 011 0010 |
50 |
32 |
2
|
| 011 0011 |
51 |
33 |
3
|
| 011 0100 |
52 |
34 |
4
|
| 011 0101 |
53 |
35 |
5
|
| 011 0110 |
54 |
36 |
6
|
| 011 0111 |
55 |
37 |
7
|
| 011 1000 |
56 |
38 |
8
|
| 011 1001 |
57 |
39 |
9
|
| 011 1010 |
58 |
3A |
:
|
| 011 1011 |
59 |
3B |
;
|
| 011 1100 |
60 |
3C |
<
|
| 011 1101 |
61 |
3D |
=
|
| 011 1110 |
62 |
3E |
>
|
| 011 1111 |
63 |
3F |
?
|
|
| 二進位制 |
十進位制 |
十六進位制 |
字形 |
| 100 0000 |
64 |
40 |
@
|
| 100 0001 |
65 |
41 |
A
|
| 100 0010 |
66 |
42 |
B
|
| 100 0011 |
67 |
43 |
C
|
| 100 0100 |
68 |
44 |
D
|
| 100 0101 |
69 |
45 |
E
|
| 100 0110 |
70 |
46 |
F
|
| 100 0111 |
71 |
47 |
G
|
| 100 1000 |
72 |
48 |
H
|
| 100 1001 |
73 |
49 |
I
|
| 100 1010 |
74 |
4A |
J
|
| 100 1011 |
75 |
4B |
K
|
| 100 1100 |
76 |
4C |
L
|
| 100 1101 |
77 |
4D |
M
|
| 100 1110 |
78 |
4E |
N
|
| 100 1111 |
79 |
4F |
O
|
| 101 0000 |
80 |
50 |
P
|
| 101 0001 |
81 |
51 |
Q
|
| 101 0010 |
82 |
52 |
R
|
| 101 0011 |
83 |
53 |
S
|
| 101 0100 |
84 |
54 |
T
|
| 101 0101 |
85 |
55 |
U
|
| 101 0110 |
86 |
56 |
V
|
| 101 0111 |
87 |
57 |
W
|
| 101 1000 |
88 |
58 |
X
|
| 101 1001 |
89 |
59 |
Y
|
| 101 1010 |
90 |
5A |
Z
|
| 101 1011 |
91 |
5B |
[
|
| 101 1100 |
92 |
5C |
\
|
| 101 1101 |
93 |
5D |
]
|
| 101 1110 |
94 |
5E |
^
|
| 101 1111 |
95 |
5F |
_
|
|
| 二進位制 |
十進位制 |
十六進位制 |
字形 |
| 110 0000 |
96 |
60 |
`
|
| 110 0001 |
97 |
61 |
a
|
| 110 0010 |
98 |
62 |
b
|
| 110 0011 |
99 |
63 |
c
|
| 110 0100 |
100 |
64 |
d
|
| 110 0101 |
101 |
65 |
e
|
| 110 0110 |
102 |
66 |
f
|
| 110 0111 |
103 |
67 |
g
|
| 110 1000 |
104 |
68 |
h
|
| 110 1001 |
105 |
69 |
i
|
| 110 1010 |
106 |
6A |
j
|
| 110 1011 |
107 |
6B |
k
|
| 110 1100 |
108 |
6C |
l
|
| 110 1101 |
109 |
6D |
m
|
| 110 1110 |
110 |
6E |
n
|
| 110 1111 |
111 |
6F |
o
|
| 111 0000 |
112 |
70 |
p
|
| 111 0001 |
113 |
71 |
q
|
| 111 0010 |
114 |
72 |
r
|
| 111 0011 |
115 |
73 |
s
|
| 111 0100 |
116 |
74 |
t
|
| 111 0101 |
117 |
75 |
u
|
| 111 0110 |
118 |
76 |
v
|
| 111 0111 |
119 |
77 |
w
|
| 111 1000 |
120 |
78 |
x
|
| 111 1001 |
121 |
79 |
y
|
| 111 1010 |
122 |
7A |
z
|
| 111 1011 |
123 |
7B |
{
|
| 111 1100 |
124 |
7C |
|
|
| 111 1101 |
125 |
7D |
}
|
| 111 1110 |
126 |
7E |
~
|
|
如果你仔細觀察每個字元的 ASCII 表示,你可能會發現一些模式。例如
| 二進位制 |
十進位制 |
十六進位制 |
字形 |
| 110 0001 |
97 |
61 |
a
|
| 110 0010 |
98 |
62 |
b
|
| 110 0011 |
99 |
63 |
c
|
如你所見,a = 97,b = 98,c = 99。這意味著如果我們知道字元的值,我們就可以很容易地計算出後續或先前字元的值。
|
示例:ASCII 字元
不要看上面的 ASCII 表!如果我們知道字元 '5' 的 ASCII 值為 011 0101,那麼字元 '8' 的 ASCII 值是什麼? 我們知道 '8' 是 '5' 後面的三個字元,因為 5,6,7,8。這意味著 '8' 的 ASCII 值將比 '5' 的 ASCII 值大三。
011 0101 ASCII '5'
+ 011
--------
011 1000 ASCII '8'
檢查上面,這是正確的值。 如果你擔心在二進位制加法中出錯,你可以使用十進位制數字來處理。例如,給你 'g' 的 ASCII 值,110 0111,'e' 的值是多少? 我們知道 'e' 是 'g' 之前的兩個字元,因為 e, f, g。這意味著 'e' 的 ASCII 值將比 'g' 的 ASCII 值小二。
64 32 16 8 4 2 1
1 1 0 0 1 1 1 = 10310 = ASCII value of 'g'
103 - 2 = 10110
64 32 16 8 4 2 1
1 1 0 0 1 0 1 = 10110 = ASCII value of 'e'
|
|
練習:ASCII
不使用備忘表(你在考試中不會得到它!)回答以下問題 字母 'Z' 的 ASCII 碼為 90(十進位制),字母 'X' 是如何儲存的
答案
88 - 因為它在字母表中向下移動了 2 個字元
以下文字使用了多少個 ASCII '字元'?
Hello Pete,
ASCII rocks!
答案
27 或 26。如果你說 23,你就錯了,因為你必須包括每行末尾的非列印字元。每行末尾都需要一個 EOL 命令,新行需要一個回車 (CR),使文字如下
Hello Pete,[EOL][CR]
ASCII rocks![EOL]
|
對於拉丁字母,ASCII 通常可以正常工作,但如果你想用普通話或印地語寫點東西呢?我們需要另一種編碼方案!
|
擴充套件:編碼 ASCII
你可能需要在從文字檔案讀取時使用 ASCII 碼。要檢視每個 ASCII 碼的含義,我們可以使用以下函式 ChrW(x),它返回十進位制值為 x 的 ASCII 碼。嘗試以下程式碼以檢視前 128 個字元。字元 10 有什麼特別之處?
For x = 0 To 127
Console.WriteLine("ASCII for " & x & " = " & ChrW(x))
Next
Console.ReadLine()
|