[0135] シフトJISコード

平成12年度秋期 (旧)第2情報処理技術者試験より
シフトJISコードの説明として、適切なものはどれか。
8ビット文字で構成され、256種の文字を表現することができる。
ISO/IEC 10646のBMP(Basic Multilingual Plane)として採用され、パソコンでのデータ交換を円滑にすることを目的として作られたコード体系である。
JIS X 0208で定められた漢字コードの規格であり、2バイトで1文字を表す2バイトコードを使っている。各バイトは“21”~“7E”(16進)の範囲であり、使用頻度を考慮して、第1水準と第2水準に分けている。
JIS漢字コード体系を変換したものであり、英数カナ(1バイト系文字)コードと混在しても区別できる。

正解

解説

 シフトJISコードに関する問題です。

 シフトJISコードは、Microsoft社によって策定された日本語文字コード体系です。文字の1バイト目を見るだけで漢字か1バイト文字(いわゆる半角英数字)か分かるので日本語処理が容易であり、同社のMS-DOSやWindowsなど、日本語を扱うパソコンの標準文字コードとして広く普及しています。

 シフトJISコードの特徴を、以下に列挙します。

(1) 1バイト中 8ビットを利用する

 ASCIIコードは、アルファベットの大文字小文字、数字と必要最小限の記号を表現するものですが、7ビット、つまり 16進数の 00h ~ 7Fh で表現できてしまいます。実際には制御コードなども含まれているので、文字としては 21h ~ 7Eh です。インターネットなどの通信では、英語圏で発達してきた経緯もあり、7ビットのASCIIコードが長く利用されてきました。
 こうした背景から、現在でも電子メールなどで利用されている JISコード(iso-2022-jp) は、7ビットを基準として策定されています。しかし、実際には 7ビットを基準とした文字コード体系では表現できる文字数が少なく、多くの漢字を表示しようとすると、複雑な制御が必要となります。
 シフトJISコードではこうした制約からは離れており、8ビットを使用し、簡単な仕組みで多くの文字を表現しています。

(2) 漢字を2バイト、ASCII文字を1バイトで表現でき、かつ混在ができる

 シフトJISコードは、ASCII文字のコード体系を包括しています。(1)でも述べたとおり、ASCII文字は、7ビット文字です。16進数の 80h 以降は、基本的に使用しないので、この領域に漢字を割り当てています。ただ、80h以降といっても、1バイトでは、最大でも 128個の文字しか割り当てられないので、80h以降の値(実際には、81h ~ 9Fh、E0h ~ EFh)が出現したときは、ASCII文字ではなく漢字であると判断して、次の 1バイトもその漢字のコードの一部としてみなします。つまり、漢字を表現する場合は、2バイトを使用することになります。
 したがって、ASCII文字と漢字は、それぞれコードとしては互いに干渉しないので、混在させることができます。

(3) (JISコードでは必要な)エスケープシーケンスなしで漢字を表現できる

 JISコードは エスケープシーケンス(制御文字)を使用して、ASCII、JISローマ字、新JIS、旧JIS とさまざまな の文字コードを切り替えながら表現しています。
 これは携帯電話での文字入力方式を想像していただけるとわかりやすいと思います。「1」のボタンには、“あ”、“ア”、“a”、“1”といった文字が割り当てられていますが、どの文字が表示させるかは、事前にどの文字種を選択されているかによります。この文字種選択の操作が、エスケープシーケンスの動作に相当します。
 しかしながらシフトJISコードでは、文字の 1バイト目を見るだけで漢字かASCII文字か分かるので、エスケープシーケンスは不要です。コンピュータ側から見ると、エスケープシーケンスによる切り替え処理が不要になるので、日本語処理プログラムを単純にすることができます。


 それでは、選択肢をみていきましょう。


 8ビット文字で構成され、256種の文字を表現することができる。
JIS 8ビットコードの説明です

 ISO/IEC 10646のBMP(Basic Multilingual Plane)として採用され、パソコンでのデータ交換を円滑にすることを目的として作られたコード体系である。
Unicodeの説明です

 JIS X 0208で定められた漢字コードの規格であり、2バイトで1文字を表す2バイトコードを使っている。各バイトは“21”~“7E”(16進)の範囲であり、使用頻度を考慮して、第1水準と第2水準に分けている。
JISコードの説明です

 JIS漢字コード体系を変換したものであり、英数カナ(1バイト系文字)コードと混在しても区別できる。
シフトJISコードの説明です

 よって、エが正解となります。
※ 解説の内容は執筆時点のものであり,含まれている情報の正確性,妥当性について保証するものではありません。ご注意ください・・・

関連する(かもしれない)問題