ASCII コードは実際には 7 ビットですか、それとも 8 ビットですか? 質問する

ASCII コードは実際には 7 ビットですか、それとも 8 ビットですか? 質問する

先生は ASCII は 8 ビットの文字コード体系だと教えてくれました。しかし、ASCII は 0 ~ 127 のコードのみに定義されているため、7 ビットに収まります。したがって、ASCII は実際には 7 ビットのコードであると主張することはできないのでしょうか?

ASCII が 8 ビット コードであると言うとき、一体何を意味しているのでしょうか?

ベストアンサー1

アスキー実際には、7ビットコードとして考案されました。これは、8ビットバイトが普及するずっと前から行われており、1990年代に入っても、テキストの各バイトの8番目のビットを独自の目的に使用できると想定したソフトウェアが見つかりました(「8ビットクリーンではない」)。今日では、考えてみてください8ビットのコードで、バイト0x80から0xFFまでは意味が定義されていないが、それは後付け設定

8番目のビットを使用するテキストエンコーディングは数十種類あり、ASCII互換か非互換か、固定幅か可変幅かに分類できます。ASCII互換とは、文脈に関係なく0x00から0x7Fまでの値を持つ1バイトは、ASCIIと同じ文字をエンコードします。ASCIIと互換性のないテキストエンコードは、できれば避けた方がよいでしょう。ASCIIを期待する素朴なプログラムは、それらを誤って解釈し、悲惨な、しばしばセキュリティ違反の形で解釈する傾向があります。これらは現在では非推奨であり、(たとえば)HTML5では、残念ながら次の例外を除いて、パブリックWebでの使用が禁止されています。UTF-16。 彼らについてはもう話さないつもりです。

固定幅エンコードとは、その名の通り、すべての文字が同じバイト数でエンコードされることを意味します。ASCII 互換にするには、固定幅エンコードはすべての文字を 1 バイトのみでエンコードする必要があるため、256 文字を超えることはできません。現在最も一般的なエンコードは、Windows-1252の延長8859-1 規格

現在知っておく価値のある可変幅 ASCII 互換エンコーディングは 1 つだけですが、これは非常に重要です。UTF-8は、Unicode 全体を ASCII 互換のエンコーディングにまとめたものです。可能であれば、ぜひこれを使用してください。

最後に、「ASCII」は現在、実用的これは Unicode の定義であり、元の標準 (ANSI X3.4-1968) ではありません。歴史的に、ASCII 127 文字のレパートリーには数十のバリエーションがあったためです。たとえば、フランス語のテキストの送信を容易にするために、句読点の一部がアクセント付き文字に置き換えられたことがあります。これらのバリエーションはすべて廃止されており、人々が「ASCII」と言うときは、値が 0x00 から 0x7F のバイトが Unicode コードポイント U+0000 から U+007F をエンコードすることを意味します。これは、おそらく、技術標準を作成する場合にのみ重要になります。

ASCIIの歴史とそれ以前のエンコードに興味があるなら、論文「文字コードの進化、1874-1968」(サミズダットのコピーはhttp://falsedoor.com/doc/ascii_evolution-of-character-codes.pdf) を検索し、その参考文献を探します (その多くはオンラインでは入手できず、大学図書館にアクセスできたとしても見つけるのが難しい場合があります)。

おすすめ記事