Главная страница
Навигация по странице:

  • 01101111

  • Исходный текст M a

  • Полученный индекс в Base64

  • Конечный результат в Base64 T W

  • Символ Значение

  • Шестнадцатеричная система счисления (HEX

  • отчет по лабораторной работе. Кодирование+(1). Кодировка это соответствие между визуальными символами и числами


    Скачать 174.67 Kb.
    НазваниеКодировка это соответствие между визуальными символами и числами
    Анкоротчет по лабораторной работе
    Дата29.03.2023
    Размер174.67 Kb.
    Формат файлаdocx
    Имя файлаКодирование+(1).docx
    ТипДокументы
    #1024733

    Кодировки

    • Кодировка — это соответствие между визуальными символами и числами.

    • Кодировки необходимы, так как компьютеры созданы для работы с числами и не понимают текст.

    • До 1990-х годов не существовало единой кодировки, это приводило к тому, что текст, написанный в одной кодировке, становится совершенно нечитаемым на других.

    • Unicode — единый стандарт кодирования символов. Развитие интернета и необходимость обмена большим количеством текстовой информации приводило к тому, что сейчас все пользуются этим стандартом.

    • UTF-8, UTF-16, UTF-32 и т.п. — это варианты кодировок, основанные на Unicode. Отличаются они тем, что по-разному хранят информацию.

    • UTF-8 — самая популярная кодировка. Особенность её в том, что самые популярные символы кодируются 1-2 байтами, а редко встречающиеся занимают 3-4 байта. Это приводит к существенной экономии памяти, например, при работе с английским текстом.

    Текст ASCII

    ASCII — American Standard Code for Information Interchange.

    ASCII была разработана (1963 год) для кодирования символов, коды которых помещались в 7 бит (128 символов). Со временем кодировка была расширена до 8-ми бит (256 символов), коды первых 128-и символов не изменились.

    Итак, закодируем строку «ok» (англ.) в кодировке ASCII. Символ «o» (англ.) имеет позицию 111 в десятичном виде и 6F в шестнадцатиричном. Переведем это в двоичную систему — 01101111. Символ «k» (англ.) — позиция 107 в десятеричной и 6B в шестнадцатиричной, переводим в двоичную — 01101011. Итого строка «ok» закодированная в ASCII будет выглядеть так — 01101111 01101011. Процесс декодирования будет обратный. Берем по 8 бит, переводим их в 10-ичную кодировку, получаем номер символа, смотрим по таблице что это за символ.

    Таблица ASCII
    Тут имеем 3 колонки:



    Текст UTF

    UTF-8 – кодировка символов юникод в двоичном виде. Использует от 1 до 4 байт. Так как наиболее часто используемые символы занимают 1 байт (в частности, аски-символы), то UTF-8 оптимальна для английского текста, но не для азиатского.

    Base64 – способ кодирования произвольных двоичных данных в ASCII текст. По своей сути кодирование очень простое. Каждые шесть бит на входе кодируется в один из символов 64-буквенного алфавита. “Стандартный” алфавит, который для этого используется – это A-Z, a-z, 0-9,+,/ и = в качестве заполняющего символа в конце. Таким образом, на каждые 3 байта данных приходится 4 символа.



    Man is distinguished, not only by his reason, but by this singular passion from other animals, which is a lust of the mind, that by a perseverance of delight in the continued and indefatigable generation of knowledge, exceeds the short vehemence of any carnal pleasure.

    будучи перекодированной из ASCII в Base64, выглядит следующим образом:

    TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0

    aGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1

    c3Qgb2YgdGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0

    aGUgY29udGludWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdl

    LCBleGNlZWRzIHRoZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=

    В примере, слово Man закодировано как TWFu. Процесс преобразования можно представить в виде следующей таблицы:

    Исходный текст

    M

    a

    n

    Коды ASCII

    77 (0x4d)

    97 (0x61)

    110 (0x6e)

    Двоичный вид

    0

    1

    0

    0

    1

    1

    0

    1

    0

    1

    1

    0

    0

    0

    0

    1

    0

    1

    1

    0

    1

    1

    1

    0

    Полученный индекс в Base64

    19

    22

    5

    46

    Конечный результат в Base64

    T

    W

    F

    u




    Схема соответствия «символ — значение» в Base64[


    Символ

    Значение




    Символ

    Значение




    Символ

    Значение




    Символ

    Значение

    10

    2

    8

    16

    10

    2

    8

    16







    10

    2

    8

    16







    10

    2

    8

    16

    A

    0

    000000

    00

    00

    Q

    16

    010000

    20

    10




    g

    32

    100000

    40

    20




    w

    48

    110000

    60

    30

    B

    1

    000001

    01

    01

    R

    17

    010001

    21

    11




    h

    33

    100001

    41

    21




    x

    49

    110001

    61

    31

    C

    2

    000010

    02

    02

    S

    18

    010010

    22

    12




    i

    34

    100010

    42

    22




    y

    50

    110010

    62

    32

    D

    3

    000011

    03

    03

    T

    19

    010011

    23

    13




    j

    35

    100011

    43

    23




    z

    51

    110011

    63

    33

    E

    4

    000100

    04

    04

    U

    20

    010100

    24

    14




    k

    36

    100100

    44

    24




    0

    52

    110100

    64

    34

    F

    5

    000101

    05

    05

    V

    21

    010101

    25

    15




    l

    37

    100101

    45

    25




    1

    53

    110101

    65

    35

    G

    6

    000110

    06

    06

    W

    22

    010110

    26

    16




    m

    38

    100110

    46

    26




    2

    54

    110110

    66

    36

    H

    7

    000111

    07

    07

    X

    23

    010111

    27

    17




    n

    39

    100111

    47

    27




    3

    55

    110111

    67

    37

    I

    8

    001000

    10

    08

    Y

    24

    011000

    30

    18




    o

    40

    101000

    50

    28




    4

    56

    111000

    70

    38

    J

    9

    001001

    11

    09

    Z

    25

    011001

    31

    19




    p

    41

    101001

    51

    29




    5

    57

    111001

    71

    39

    K

    10

    001010

    12

    0A

    a

    26

    011010

    32

    1A




    q

    42

    101010

    52

    2A




    6

    58

    111010

    72

    3A

    L

    11

    001011

    13

    0B

    b

    27

    011011

    33

    1B




    r

    43

    101011

    53

    2B




    7

    59

    111011

    73

    3B

    M

    12

    001100

    14

    0C

    c

    28

    011100

    34

    1C




    s

    44

    101100

    54

    2C




    8

    60

    111100

    74

    3C

    N

    13

    001101

    15

    0D

    d

    29

    011101

    35

    1D




    t

    45

    101101

    55

    2D




    9

    61

    111101

    75

    3D

    O

    14

    001110

    16

    0E

    e

    30

    011110

    36

    1E




    u

    46

    101110

    56

    2E




    +

    62

    111110

    76

    3E

    P

    15

    001111

    17

    0F

    f

    31

    011111

    37

    1F




    v

    47

    101111

    57

    2F




    /

    63

    111111

    77

    3F

    Шестнадцатеричная система счисления (HEX) – это позиционная система счисления по целочисленному основанию 16. В качестве шестнадцатеричных чисел используются цифры от 0 до 9 и латинские буквы от A до F. Значения чисел от 0 до 9 обычны, как и в десятичной системе, далее, от 10 до 16 используются буквы A-F, т.е. буква F = 16, далее 11 = 17, 12 = 18 и т.д и т.п.


    написать администратору сайта