[CS]ASCIIコード

5145 ワード

コンピュータはどのように文字を表現しますか?


ASCIIコード


コンピューターを扱う世界では、数年来、数字をアルファベット文字に対応させる基準が採用されています.これがASCIIコードです.これは十進法で対応する文字の表です.
私たちが使っているプログラム、Webブラウザ、電子メールの文字は、ASCIIコードの標準的な方法でビットモードに簡単に変換できます.
  • コンピュータは、文字を含む様々な形式の情報を記憶する.ただし、コンピュータには0と1のデータしか格納できないため、0と1で文字を表す必要があります.
  • ASCIIコードは、文字をコンピュータが理解できるバイナリデータ(0 or 1)に変換する標準的な方法である.
  • 英字の代表的な文字コードを使用して、7ビットはすべての英字を表現することができます.52文字の英字大文字小文字、10文字、32文字の特殊文字、空白文字が含まれています.

    ASCIIコード制限

  • ASCIIコードはASCIIコードテーブルで表される.ASCIIコード表には、すべてのASCII文字と対応する数字が表示されます.
  • デフォルトASCIIコード
    7 bitのみを使用してすべての文字を表します.これは、ASCIIコードが2の7平方、すなわち128文字を表すことができることを意味します.
  • 拡張ASCIIコード
    「」は8番目に追加でき、256文字を表示します.小文字と大文字は52個あり、残りのスペースはセパレータ、数字、その他の基本要素($、%、&記号など)などの他のタイプの文字を表すことができます.
  • しかし、私たちが使用できる文字数は256文字を超えているので、8ビットのASCIIコードも表示できない文字がたくさんあります.(e.g.数学記号、英語以外の言語文字)
  • したがって、
  • は、より多くの文字を含むことができるUnicodeを生成する.
  • Unicodeは、100万文字以上を表示できる文字符号化規格である.Unicodeの最初の128文字は、ASCIIの128文字と同じなので、互換性があります.
  • Unicode


    Unicode(Unicode)は工業標準であり、Unicode Consortiumが制定した世界のすべての文字をコンピュータ上で統一的に表現し、処理することを目的としている.この規格は、ISO 10646文字セット、文字符号化、文字情報データベース、文字を処理するアルゴリズムなどを含む.
    Unicodeが誕生するまでは、同じハングルが書かれたテキストファイルでもそれぞれの表現方法があり、あるファイルがサポートされていない他の符号化形式で格納されている場合は、ファイルを正しくロードできません.基本的に、Unicodeの目的は、既存のすべての文字符号化方法をUnicodeに置き換えることである.
  • UnicodeはASCIIの拡張形式である.
  • コーディング

  • 符号化とは、任意の文字または記号をコンピュータで利用可能な信号に変換することを意味する.
    入力
  • 信号の符号化および復号化を行うためには、予め設定された基準に従って入力および復号化を行う必要がある.
  • のように符号化および復号化される規格は、文字列セットまたは文字セット(charset)と呼ばれる.
  • という3文字の国際標準はUnicodeです.
  • コーディングモード


    UTF-8 vs UTF-16


    UTF-8とUTF-16は符号化方式の違いを意味する.
    UTF-8はUniversal Coded Character Set+Transformation Format-8-bitの略で、UTF-8の後ろの数字はビットです.

    1.UTF-8特性:可変長符号化


    UTF-8は、Unicode文字を1バイト(=8ビット)から4バイトで表す.

  • n/a原理
    例えば、という文字のUnicodeは、U+CF 54(16進数、HEX)として表される.この文字をバイナリ(binarynumber)で表すと1100-1111-0101-0100になります.この文字をUTF-8として表すと、以下のように3バイトの結果として表示されます.

  • UTF-8表示の「鼻」
  • 1110xxxx 10xxxxxx 10xxxxxx # x 안에 순서대로 값을 채워넣는다.
    11101100 10111101 10010100
  • 「co」はUTF-8で表すことができる.
  • let encoder = new TextEncoder(); // 기본 인코딩은 'utf-8'
    encoder().encode('코') // Uint8Array(3) [236, 189, 148]
    
    (236).toString(2) // "11101110"
    (189).toString(2) // "10111101"
    (148).toString(2) // "10010100"
    ASCIIコードは7 bitで表され、UTF-8は1 byteの結果を生成することができ、以下に示す.次の例では、UTF-8を使用してb文字を符号化します.

  • UTF-8が示す「b」0xxxxxxx 01100010

  • 「b」はUTF-8で表すことができる.js encoder.encode('b') // Uint8Array [98] (98).toString(2) // "1100010"
  • このように、UTF−8は、1バイトから4バイトまでの可変長の符号化方式である.ネットワークを介して伝送されるテキストは、主としてUTF−8として符号化される.使用する文字によって、より小さな文字列を表すことができるからです.ASCII文字が1バイトしか表現できないように.
    UTF-8はASCIIコードの1バイト、大文字英語の単文字は2バイト、3バイト、補助文字は4バイトです.おばさんは補助字に相当するので、4 byteが必要です.

    2.UTF-8特性:バイト順固定

  • UTF-16と比較してバイト順ではなく一定の順序がある.
  • UTF-8では、ハングルは3バイト
  • 3.UTF-16フィーチャー:コード内のバイト順


  • コードでバイトを表すことができます

  • バイト順は多種多様です.

  • UTF-16は、Unicodeコードの大部分(U+0000からU+FFF;BMP)を16ビットとして表す.
    その他の
  • に属さない文字の大部分は32ビット(4バイト)と表され、UTF-16は可変長として表されてもよいが、大部分は16ビット(2バイト)と表される.
  • バイトの順でUTF-16の種類も異なります.

  • UTF-16では、韓国語が2バイトを占めています