seegongsik
構造

わかりやすく 文字 どうやって 数字になる

コンピュータは数しかわからない、という話をしました。それなのに私たちはキーボードで文字を打ち、画面にも文字が表示されます。数しか知らない機械がどうやって文字を扱っているのか、このレッスンでその中をのぞいてみます。

01

文字には一つずつ番号がついている

秘密は思ったより単純です。
人々が集まって、文字ごとに番号を決めておいたのです。
Aは65番、Bは66番という具合です。
そのため、キーボードでAを押すと、コンピュータに届くのは文字ではなく数の65です。

A→65
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という番号も、結局は8個のスイッチのオンとオフで保存されます。
文字一つが、0と1の8個になるわけです。

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

Aは65番、その番号がさらに0と1の8個に変わります。

そのため英語の文字1個は、ふつうスイッチ8個分、つまり1バイトを使います。
8個をひとまとまりで呼ぶこの言葉、バイトがここで初めて登場します。
文字も、結局は0と1だったのです。

03

対応表を広げてみる

ASCIIの対応表が実際にどんな形をしているのか、下に広げておきました。
番号の順に文字が並び、文字ごとに番号がいっしょに書かれています。
大文字の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

スイッチ8個では足りない

スイッチ8個で表せるのは256通りです。
英語のアルファベットと数字、記号を全部入れても、まだ余ります。
英語圏で作られた約束だったので、最初はこれで十分でした。

0 ~ 255 · 256

0から255まで、全部で256通り。

けれども、世界は英語だけではありません。
韓国語のハングルは音節文字だけでも1万字を超え、漢字は数万字にのぼります。
そこに絵文字まで加えると、256個ではとても足りません。
そこで新しい約束が必要になりました。

05

大きな文字はバイトを多く使う

解決策は単純です。
1マスで足りなければ、何マスか使えばよいのです。
広く使われているUTF-8という方式では、英語はそのまま1バイト、ハングルはふつう3バイト、絵文字は4バイトを使います。
世界中のあらゆる文字に番号をつけたこの巨大な対応表を、Unicode(ユニコード)と呼びます。

A
英語の一文字
1バイト (1マス)
0100
가
ハングルの一文字
3バイト (3マス)
1110
1011
1000
絵文字ひとつ
4バイト (4マス)
1111
1001
1001
1000

文字によって使うマスの数が違います。

そのため同じ1文字でも、使う場所の大きさが違います。
英語の1文字は1マス、ハングルの1文字は3マスです。
メッセージの文字数を人が数えたときとコンピュータが数えたときで値が変わるのは、このためです。

06

一つの文も、結局は数の列

今度は短い一行をまるごと見てみます。
文字の一つひとつが番号に変わり、その番号がさらに0と1になります。
私たちが送るメッセージも、中をのぞけばこのように数が長く続いた列です。

Hi
H720100 1000
i1050110 1001

コンピュータから見た「Hi」の2文字。

文字を画面に表示するときは、この手順を逆にたどります。
0と1を読んで番号を割り出し、その番号の文字を対応表から探して描くのです。
私たちの目には文字に見えても、中は最初から最後まで数です。

一言でいうと数しか知らないコンピュータが文字を扱える秘密は、文字ごとに番号をつけた対応表でした。そしてその番号も、結局は第1回で学んだ0と1で書かれています。
← 構造
このページがお役に立ったなら支援する