「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

2バイト文字

pointこの用語のポイント

point全角文字だよ

point1バイトのデータでは表現できない(2バイト以上のデータで表現する)文字だよ

pointあるいは、2バイトで表現される文字だよ

スポンサーリンク

簡単に書くよ

2バイト文字(読:ニバイトモジ 英:double-byte character)とは

全角文字のこと。
用語の中身としては

「あ」と同じくらいの幅の文字('a'みたいに文字が1つだけある状態)のこと
です。

本当は

2バイト(以上)のデータで表現する文字のこと
ですけどね。


image piyo

詳しく書くよ

順番に見ていきましょう。
まずは予備知識として

文字
半角文字
全角文字
1バイト文字


について説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。

文字は「あ」とか「い」とかです。

2バイト文字

「わざわざ説明されなくても分かるよ」という人も多いでしょうけどね。
コンピュータの世界では「あ」や「い」のような「記号としての文字」と「眠い」や「お腹空いた」のような「言葉としての文字」を区別します。
そして

・記号としての文字 → 文字
・言葉としての文字 → 文字列


と呼び分けるのです。

2バイト文字2

まずは「記号としての文字」と「言葉としての文字」があると理解してください。
その上で、本ページで出てくるのは「記号としての文字」です。

コンピュータの世界で出てくる「記号としての文字」は2種類あります。
それは

1.「a」と同じくらいの幅の文字
2.「あ」と同じくらいの幅の文字


の2つです。

2バイト文字3

この2種類の文字のうち

1.「a」と同じくらいの幅の文字

を「半角文字」と言います。
別に「a」じゃなくて「A」でも「1」でも良いのですけどね。
直接入力モード(英語モード)入力した英語くらいの幅の文字です。

2バイト文字4

また

2.「あ」と同じくらいの幅の文字

の方は「全角文字」と言います。
別に「あ」じゃなくて「ア」でも「1」でも「A」でも良いのですけどね。
日本語入力モードで入力した日本語くらいの幅の文字です。

2バイト文字5

1バイト文字は「半角文字」の別の呼び名です。
「半角文字」と「1バイト文字」は似たようなものだと思って かまいません。

2バイト文字6

……というのが正確ではないけどイメージしやすいであろう説明です。

本当は、1バイトで表現できる文字が1バイト文字です。

コンピュータの世界では0か1が入る箱を「ビット(bit)」と言います。
1ビットは0か1が入る箱が1個ある状態です。

2バイト文字7

この箱が8個集まると「バイト(Byte)」に変身します。
1バイトは0か1が入る箱が8個ある状態です。

2バイト文字8

1バイトで表現できる情報の数は256個です。

00000000

から始まって

00000001
00000010
00000011
00000100
00000101


と続き

111111111

に至ります。
この0と1の組み合わせの数が256個あるのです。

さて、コンピュータの世界では文字を数字として扱います。
実際の組み合わせとは違いますが、例えば

00000000:A
00000001:B
00000010:C


のように割り当ててあり、文字「A」をコンピュータさんの内部では「00000000」として扱うのです。

ここで ちょっとだけ歴史的な話をします。
コンピュータは最初、英語圏の人が作りました。
だから「文字」といえば英語です。
つまり「アルファベット」でした。

アルファベットと数字だけであれば、256個もあれば十分でしょう。
そこで、初期のコンピュータでは文字を1バイトのデータとして扱っていたのです。

ところがどっこい、コンピュータが世界的に広まると「日本語も使いたい!」「中国語も使いたい!」「アラビア語も使いたい!」と言い出す人が出てきました。
そうなると、文字に割り当てる数字が256個では足りなくなります。

足りなければ足せば良いのです。
1バイトで足りなければ2バイトにしましょう。

それまでは文字を1バイトのデータとして扱っていましたが、2バイトのデータとして扱うことにしました。
ついでなので書いておくと、今は2バイトでも足りなくなったので、3バイトとか4バイトで1文字を表現したりもします。

ということで、今のコンピュータ世界には

1.1バイトで表現できる文字
2.2バイト以上で表現する文字(1バイトでは表現できない文字)


の2種類あるのです。

この2種類のうち

1.1バイトで表現できる文字

が1バイト文字です。

1バイトで表現できる文字に分類されるのは、主にアルファベットや数字です。
よって、上の方では1バイト文字を「半角文字だよ」と説明しました。

以上を踏まえて

「全角文字」の別の呼び名

が「2バイト文字」です。
「全角文字」と「2バイト文字」は似たようなものだと思って かまいません。

2バイト文字9

……というのが正確ではないけどイメージしやすいであろう説明です。

本当は……と言いつつ、この説明も微妙に間違っているのですが

1バイトで表現できない文字

が「2バイト文字」です。

1バイト文字の説明をしたときに、今のコンピュータ世界には

1.1バイトで表現できる文字
2.2バイト以上で表現する文字(1バイトでは表現できない文字)


の2種類あると書きました。

そして、この2種類のうち

1.1バイトで表現できる文字

が1バイト文字だと書きました。

残りの

2.2バイト以上で表現する文字(1バイトでは表現できない文字)

が2バイト文字です。

「2バイト文字」という用語は「1バイト文字」の仲間です。

1バイト文字:1バイトで表現できる文字
2バイト文字:2バイト以上で表現する文字(1バイトでは表現できない文字)


となります。

ちょっと休憩4

さて、ここまでの説明を読んで気になっている方もいるでしょう。
少し上の方で「この説明も微妙に間違っているのですが」と書きました。
それについて補足します。

実は「2バイト文字」という表現は、今では使わない方が無難な表現です。

昔は

半角文字:1バイト
全角文字:2バイト


と考えて問題ありませんでした。
そのため

半角文字:1バイト文字
全角文字:2バイト文字


と呼び分けていたのです。

現在では

半角文字:1バイト
全角文字:2バイトとか3バイトとか4バイトとか


です。

そうです。
全角文字は「2バイトとか3バイトとか4バイトとか」で表現される文字なのです。
必ずしも2バイトとは、かぎりません。

そのため「全角文字」や「1バイトで表現できない文字」を意図して「2バイト文字」と表現するのは(現在では)正しくないのです。

もちろん、以上でも以下でもなく「2バイトで表現される文字」を意図して「2バイト文字」と言うのは正しいですけどね。
そんな機会は多くないと思います。

ということで、私は「2バイト文字」ではなく「マルチバイト文字」という表現を使うようにしています。
マルチの意味は「複数(2つ以上)」です。
2バイトでも3バイトでも4バイトでも「マルチバイト」なので「2バイトじゃないのに2バイト文字……」とモヤモヤしなくて済むからです。


image piyo2

一言でまとめるよ

まぁ「2バイト文字」って単語が出てきたら「全角文字(「あ」と同じくらいの幅の文字)のこと、もしくは、2バイト(以上)で表現する文字('a'みたいに文字が1つだけある状態)のことなんだな~」と お考えください。

一番上に戻るよ
スポンサーリンク
書籍画像065
書籍画像008

おまけ



書籍画像
わわわ説明術コラム
宣伝だよ
わかばちゃんとつくって、壊して、直して学ぶ NewSQL入門
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本【Audible】
おい点P、動くんじゃねえ!──ニガテ民のための算数と数学の本