7 класс. Кодирование текстов. Равномерные и неравномерные коды
(Задание №6 ВПР 2025)
Текстовые редакторы
- Блокнот (notepad) в Windows
- Mousepad в Linux
Если мы наберем слово Informatics в этих текстовых редакторах и сохраним его в файле, то обнаружим, что объём файла равен 11 байтам.
Догадываетесь, почему?
Для тех, кто не догадался - ответ: потому что в слове Informatics 11 букв.
В полученном файле каждая буква занимает 1 байт или 8 бит.
Но буква может занимать и другое количество бит. Это зависит от способа кодирования.
Вот пример кодовой таблицы, в которой каждый символ занимает 8 бит:
| Символ | Двоичный код | Символ | Двоичный код | Символ | Двоичный код | Символ | Двоичный код |
|---|---|---|---|---|---|---|---|
| NUL | 00000000 | Space | 00100000 | @ | 01000000 | ` | 01100000 |
| SOH | 00000001 | ! | 00100001 | A | 01000001 | a | 01100001 |
| STX | 00000010 | " | 00100010 | B | 01000010 | b | 01100010 |
| ETX | 00000011 | # | 00100011 | C | 01000011 | c | 01100011 |
| EOT | 00000100 | $ | 00100100 | D | 01000100 | d | 01100100 |
| ENQ | 00000101 | % | 00100101 | E | 01000101 | e | 01100101 |
| ACK | 00000110 | & | 00100110 | F | 01000110 | f | 01100110 |
| BEL | 00000111 | ' | 00100111 | G | 01000111 | g | 01100111 |
| BS | 00001000 | ( | 00101000 | H | 01001000 | h | 01101000 |
| HT | 00001001 | ) | 00101001 | I | 01001001 | i | 01101001 |
| LF | 00001010 | * | 00101010 | J | 01001010 | j | 01101010 |
| VT | 00001011 | + | 00101011 | K | 01001011 | k | 01101011 |
| FF | 00001100 | , | 00101100 | L | 01001100 | l | 01101100 |
| CR | 00001101 | - | 00101101 | M | 01001101 | m | 01101101 |
| SO | 00001110 | . | 00101110 | N | 01001110 | n | 01101110 |
| SI | 00001111 | / | 00101111 | O | 01001111 | o | 01101111 |
| DLE | 00010000 | 0 | 00110000 | P | 01010000 | p | 01110000 |
| DC1 | 00010001 | 1 | 00110001 | Q | 01010001 | q | 01110001 |
| DC2 | 00010010 | 2 | 00110010 | R | 01010010 | r | 01110010 |
| DC3 | 00010011 | 3 | 00110011 | S | 01010011 | s | 01110011 |
| DC4 | 00010100 | 4 | 00110100 | T | 01010100 | t | 01110100 |
| NAK | 00010101 | 5 | 00110101 | U | 01010101 | u | 01110101 |
| SYN | 00010110 | 6 | 00110110 | V | 01010110 | v | 01110110 |
| ETB | 00010111 | 7 | 00110111 | W | 01010111 | w | 01110111 |
| CAN | 00011000 | 8 | 00111000 | X | 01011000 | x | 01111000 |
| EM | 00011001 | 9 | 00111001 | Y | 01011001 | y | 01111001 |
| SUB | 00011010 | : | 00111010 | Z | 01011010 | z | 01111010 |
| ESC | 00011011 | ; | 00111011 | [ | 01011011 | { | 01111011 |
| FS | 00011100 | < | 00111100 | \ | 01011100 | | | 01111100 |
| GS | 00011101 | = | 00111101 | ] | 01011101 | } | 01111101 |
| RS | 00011110 | > | 00111110 | ^ | 01011110 | ~ | 01111110 |
| US | 00011111 | ? | 00111111 | _ | 01011111 | DEL | 01111111 |
Но если нам не нужно столько символов, сколько в этой кодовой таблице, можно обойтись меньшим количеством бит на каждый символ.
Если нужно только две буквы - достаточно одного бита:
А - 0
Б - 1
Если нужно 4 буквы - достаточно двух бит:
А - 00
Б - 01
В - 10
Г - 11
А чтобы узнать, сколько бит нужно для кодирования N букв, можно воспользоваться формулой
2i=N (два в степени i равно N)
В этой формуле N - это количество символов, а i - информационный вес символа, или количество бит информации, который он несет в себе.