1. 序章

ASCII(情報交換のためのアメリカ標準コード)コードは、128個のグラフィックシンボルと制御シンボルのセットをエンコードするために使用される7ビットのバイナリ標準で構成されています。

具体的には、 ASCIIテーブルには95個のグラフィック記号が含まれています。これらの記号には、ラテンアルファベット(小文字と大文字)、一般的な句読点、一般的な数学記号、アラビア数字が含まれます。

ASCIIテーブルには33個の制御シンボルも含まれています。これらのシンボルは、処理を管理し、ASCIIでエンコードされた情報のメタデータを提供するために使用されます。

この記事では、最初に、ASCIIの歴史とドキュメントを見ていきます。 次に、ASCIIテーブルを詳しく調べて、各シンボルがどのようにエンコードされているかを学習します。

理論的な背景の後で、特定の記号と単語をグラフィック形式から10進数のASCIIコードに、そして最後にバイナリコードにエンコードする方法を説明します。 同様に、2進化10進ASCIIコードをデコードする方法を見ていきます。

最後に、いくつかのASCIIバリアントとそれらが使用されている場所を簡単に確認します。

2. 少しの歴史

当初、電信送信で使用されるコードは、ASCIIコードの開発に影響を与えました。 したがって、7ビットベースのテレプリンターで動作するように設計されています。 ただし、ASCIIコードの開発者は、テレプリンター以外のデバイスに適したコードも計画しました。

American Standard Association(現在のAmerican National Standards Institute)は、1963年にASCIIを提案しました。 その後、組織はASCIIを数回レビューし、途中でそれを維持しました。

ASCIIに含まれる追加の非電信コードと、よく整理されソートされたコードの配布(以前の電信コードと比較して)は、1968年に米国の標準的な連邦コンピューター通信言語としてASCIIを確立しました。

インターネットの台頭に伴い、ASCIIはその後数年間で非常に急速に普及しました。 ASCIIコードは、電子メールやHTMLページの文字をエンコードすることで特に人気がありました。

2008年以降、UTF-8は最も一般的なインターネットエンコーディングとしてASCIIを上回りました。 ただし、UTF-8は最初の128コードとしてASCIIを埋め込み、128個の追加コードでテーブルを拡張しました。

3. ASCII

上で述べたように、ASCIIは128個のシンボル(95個のグラフィックシンボルと33個の制御シンボル)を持つ7ビットコードで構成されています。

最も重要なのは、ASCIIが特定のビットシーケンス(コード)が特定のシンボルを表すことを確立することです。 したがって、ASCIIを使用すると、たとえば、デジタルデバイスで、人間が自然に認識できるデータを処理、保存、および表示できます。

ASCIIのコードは通常、ASCIIテーブルと呼ばれるテーブルに表示されます。このテーブルには、各コードに関連付けられた記号、その説明、および10進数/バイナリコードの表現が含まれています。

ASCIIテーブルは、0〜31のコード範囲のほとんどの制御シンボルをグループ化します。 固有の例外は、コード127のシンボルDELです。 この例外は、タイピングエラーを修正するためのテレタイプマシンのプロセスに対処します。

テレタイプは、オペレーターがキーを押すとパンチカードをパンチすることに注意してください。 したがって、利用可能なバックスペース機能はありません。 このように、エラーを修正するプロセスは、パンチカードをエラーの位置に戻し、それぞれのコードを、パンチカードを読み取って処理するときに無視されるコードに置き換えることで構成されます。

テレタイプマシンは通常、エラー位置にすべての穴を開けてASCII DELコード(127)を生成することにより、無視するコードを表します。

グラフィックシンボルのコードは、ASCIIテーブルでは32〜126です。 ASCIIグラフィックシンボルには、とりわけ、ラテン文字、アラビア数字、句読点、および数学演算子があります。

特に、スペース(32)は印刷可能な記号として認識されません。 したがって、スペース(32)は、非表示のグラフィックシンボルとして特別に分類されます。

最後に、ASCIIグラフィックシンボルの順序は、ASCIIbeticalと呼ばれる特定の構成に従います。 ASCIIbeticalの順序は、小文字の前に大文字を割り当てます(たとえば、「Z」は「a」の前にあります)。 また、数字は文字の前にあり、他の記号は文字と数字のセットを挿入するコードを受け取ります。

4. ASCIIエンコーディングおよびデコーディングプロセス

ランダムな文字列をバイナリASCIIコードにエンコードするには、通常、文字列の各文字のそれぞれの10進値を含むASCIIテーブルが必要です。 エンコード後、デジタルデバイスはこれらのコードを処理、保存、または送信できます。 ただし、このようなデバイスの人間のオペレーターにASCIIを表示するには、コードをバイナリから読み取り可能なバージョンにデコードする必要があります。

次のサブセクションでは、ASCIIのエンコードとデコードの両方のプロセスについて学習します。

4.1. 読み取り可能な文字列からバイナリASCIIへ

文字のシーケンスをバイナリASCIIコードに変換する方法を示すために、文字列「Baeldung」を使用して、その文字列でエンコードプロセスを段階的に実行します。

まず、 ASCIIテーブルを検索して、文字列の各文字に対応する10進値を確立します。

ラテン文字を扱う場合、ASCIIでは大文字と小文字が区別されることに注意することが重要です。 したがって、この例では、「B」のコード(66)は「b」のコード(98)とは異なります。

10進数のASCIIコードを定義した後、それらをバイナリコードに変換できます。 そのために、各10進コードを7ビットコードに変換します。 バイナリASCIIコードの各位置(つまり、各ビット)は、の値を示します。 さらに、ビットの重要性は右から左に大きくなります。 このように、バイナリASCIIコードは次の構造を持ちます。

この構造では、10進数のASCIIコードのそれぞれのバイナリコードを取得するには、値の合計が10進数のASCIIコードになるように、ビット1を位置Pに割り当てる必要があります。 他の位置はビット0を受け取ります。 「Baeldung」のエンコードプロセスを考慮に入れると、次のバイナリASCIIコードがあります。

したがって、文字列「Baeldung」のバイナリASCIIコードは1000010 1100001 1100101 1101100 1100100 111010111011101100111です。

4.2. バイナリASCIIから読み取り可能な文字列へ

バイナリASCIIから読み取り可能な文字列へのデコードプロセスを示すために、次のコードを使用します:1010011 1100011 1101001 1100101 110111011000111100101。

バイナリASCIIコードのデコードプロセスを実行するために、以前にエンコードプロセスで使用されたのと同じ位置/値の構造を使用します。 ただし、ここで、提供されたバイナリコードのそれぞれのビットで位置を埋める必要があります。 次に、位置の値をビット1で合計して、10進コードを取得します。

次に、 ASCIIテーブルを検索して、10進コードを読み取り可能な文字列に変換します

最後に、提供されたASCIIコードの読み取り可能な文字列は「Science」であると結論付けます。

5. ASCIIバリアント

コンピュータ技術の普及によれば、特定の標準化団体は、特定の言語で採用されている新しい記号に取り組むためにASCIIコードを採用しました。 これらの記号の例は、アクセント付きの文字とセディーユです。

ASCIIバリアントの作成を促進した別の現象は、コンピューター用の8ビット(およびその後、16、32、および64ビット)アーキテクチャーの台頭でした。 プログラミング言語で認識される最小のデータ型は、通常、8ビットのバイトになりました。 したがって、新しいエンコーディングでは、ASCIIテーブルを拡大するために余分なビットが頻繁に使用されていました。

新しいエンコーディングは、ASCIIの元のテーブル(0から127)を保持し、新しいシンボルで拡張しました。 特に重要な2つの8ビットエンコーディングは次のとおりです。

  • Windows 1252: 123個の追加シンボルでASCIIテーブルを拡張するシングルバイトエンコーディング Windows 1252は、ASCIIテーブルで考慮されていないいくつかの西ラテン文字のコードを提供します。 現在、Windows1252テーブルで使用されていないコードは5つだけです。
  • UTF-8:128個の追加シンボルでASCIIテーブルを拡張するシングルバイトエンコーディング。 Windows 1252と同様に、UTF-8の新しい記号は複数の西ラテン文字を包含しています。 ただし、これらの追加の記号とコードの一部は、Windows1252テーブルのものとは異なります。 UTF-8がUnicode標準の一部であることを強調します。 Unicode標準は、既存のほとんどの書記体系の記号のバイナリコードを提供します。 ただし、そのために、Unicodeは特定のシンボルをエンコードするために2バイト(UTF-16)または4バイト(UTF-32)を必要とする場合があります。

6. 結論

この記事では、ASCIIコードとテーブルについて学習しました。 まず、 ASCIIの歴史。 次に、分析しました ASCIIテーブルとコード 規格がどのように構成されているかを理解しました。 次に、方法を学びました エンコード/デコード ASCIIを使用した汎用文字列。 最後に、最も一般的なASCIIバリアントを調べました。

ASCIIは、UTF-8など、現在最も人気のある情報エンコーディング標準を刺激し、構成する重要な標準であると結論付けることができます。