seegongsik
我的单词本
结构

文字是怎么变成数的?

我们说过,电脑只认识数。可我们打的是字,屏幕上出来的也是字。一个只认识数的机器,到底是怎么处理文字的呢?

01

每个字都贴着一个号码

秘密比你想的简单。
大家凑在一起,
给每个字都定了个号码。
A是65号,
B是66号,
就这么排。
所以你在键盘上按A,
传给电脑的不是字,
是数字65。

A65
128
0
64
1
32
0
16
0
8
0
4
0
2
0
1
1
A = 65 = 0100 0001

按一个字,它的号码就出来了。

从A到Z,
小写也好,
数字和符号也好,
都有自己的号码。
这套给字编号的约定,
就叫阿斯基(ASCII)。
是电脑头一回为了处理文字,
做出来的第一张约定表。

02

号码又会变回0和1

不过想想上次说的。
电脑连数,
也是用0和1来装的。
所以65这个号码,
到头来也是用八个开关的
开和关存起来。
一个字,
就变成八个0和1。

A65
128
0
64
1
32
0
16
0
8
0
4
0
2
0
1
1
A = 65 = 0100 0001

A是65号,再把它变成八个0和1。

所以一个字一般要占
八个开关,
也就是1字节。
上次学的字节,
这儿又冒出来了。
文字,说到底也是0和1。

03

把约定表摊开看看

我给你看看,
阿斯基这张约定表,
到底长什么样。
字按号码顺序排着。
点一下,
就能看到那个字的号码。
大写A是65,
小写a是97,
数字0是48。

!
33
"
34
#
35
$
36
%
37
&
38
'
39
(
40
)
41
*
42
+
43
,
44
-
45
.
46
/
47
0
48
1
49
2
50
3
51
4
52
5
53
6
54
7
55
8
56
9
57
:
58
;
59
<
60
=
61
>
62
?
63
@
64
A
65
B
66
C
67
D
68
E
69
F
70
G
71
H
72
I
73
J
74
K
75
L
76
M
77
N
78
O
79
P
80
Q
81
R
82
S
83
T
84
U
85
V
86
W
87
X
88
Y
89
Z
90
[
91
\
92
]
93
^
94
_
95
`
96
a
97
b
98
c
99
d
100
e
101
f
102
g
103
h
104
i
105
j
106
k
107
l
108
m
109
n
110
o
111
p
112
q
113
r
114
s
115
t
116
u
117
v
118
w
119
x
120
y
121
z
122
{
123
|
124
}
125
~
126

小写的号码比大写大,差32。

有意思的是,
大写和小写,
正好差32。
A是65,a是97。
不是巧合,
是为了以后好处理,
才这么定的。

04

八个开关不够用

八个开关,
能表示的,
是256种。
英文字母、数字、符号,
全装进去还有富余。
所以一开始这就够了,
毕竟是英语圈定的约定。

0 ~ 255 · 256

从0到255,一共256种。

可这世上,
不是只有英文。
光韩文就一万多字,
汉字好几万。
再加上表情符号。
256远远不够。
所以得有个新约定。

05

大的字,多占几个字节

解决办法很简单。
一格不够,
那就用几格。
英文还是1字节,
中文一般3字节,
表情符号4字节。
这张给世上每个字都编了号的
巨大约定表,
就叫统一码(Unicode)。

A
一个英文字
1字节 (1格)
0100
一个韩文字
3字节 (3格)
1110
1011
1000
😀
一个表情符号
4字节 (4格)
1111
1001
1001
1000

不同的字,占的格数不一样。

所以同样一个字,
占的地方也不同。
一个英文字母占一格,
一个汉字占三格。
你数消息字数的时候,
跟电脑数的不一样,
原因就在这儿。

06

一句话,说到底也是一串数

现在把短短一行,
整个看一遍。
每个字都变成号码,
号码又变回0和1。
我们发的每一条消息,
往里头一看,
都是这么一长串数。

Hi
H720100 1000
i1050110 1001

电脑眼里的 Hi。

字显示到屏幕上时,是反过来的。
读0和1,算出号码,
再按这个号码,
从约定表里找出字画出来。
我们眼里是字,
里头从头到尾都是数。

一句话总结只认识数的电脑能处理文字,秘密就是那张给每个字编了号的约定表。而那些号码,说到底,还是第一课学的0和1。
如果有帮助,请支持我们
结构