Видео-теория: Работа с кодами
Мы продолжаем изучать коды и занятия «Работа с кодами» На занятии «Кодирование и декодирование» выяснили, что такое код, давайте повторим. Код – это система правил по преобразованию некоторой информации из одной формы в другую (и обратно) с целью передачи, хранения или преобразования. Обычно форма передачи данных является символьной.
Но зачем же нам коды?
Коды нам нужны:
- для удобства записи (стенография)
- для удобства хранения (символьный)
- для удобства передачи (звуковой, Морзе)
- для удобства чтения (азбука Брайля)
- для неудобств при перехвате (шифры)
Один из примеров шифров, это шифр Цезаря, когда каждая буква алфавита в сообщении заменяется букву, стоящую через 3 позиции после нее, например, A → Г, Б → Д, В → Е, …
Попробуйте расшифровать сообщение:
зфол тусълхго ргтлыл
е ъгх егхуцынг
Если все верно вышло, то в ответе получается (то, что указано в скобках):
з(е)ф(с)о(л)л(и) т(п)у(р)с(о)ъ(ч)л(и)х(т)г(а)о(л)
р(н)г(а)т(п)л(и)ы(ш)л(и)
е(в) ъ(ч)г(а)х(т) е(в)г(а)х(т)у(р)ц(у)ы(ш)н(к)г(а)
Шифры — это подмножество кодов, с некоторыми модификациями.
Наши компьютеры не воспринимают информацию, кроме как двоичных кодов, даже если вы пишете программу на каком-то языке программирования, то в процессе ее обработки она переводится в сигналы, состоящие из единиц и нулей или, другими словами, двоичный код.
Двоичный код состоит из битов. Бит — это минимальная единица информации, либо 0, либо 1, это можно по-разному интерпретировать: да или нет, лампочка погасла или лампочка горит и т. д.
Для того, чтобы компьютер мог прочитать числовое значение, допустим, в привычной нам десятичной системе счисления, нам необходимо перевести его в двоичный код. Чтобы перевести число из одной системы счисления (СС) в другую необходимо провести следующие действия (разбираем на примере перевода из 10СС в 2СС):
1. Берем число в 10СС и делим на 2 (основание
целевой СС)
например, 123/2 = 61 (ост. 1)
2. Продолжаем делить на 2 до тех пор, пока в
частном не останется число меньше 2
61/2 = 30 (ост. 1)
30/2 = 15 (ост. 0)
15/2 = 7 (ост. 1)
7/2 = 3 (ост. 1)
3/2 = 1 (ост. 1)
3. Записываем подряд последнее полученное частное и
остатки начиная с самого последнего к первому
1111011
Мы упомянули понятие бит, и мы знаем, что в одном байте 8 бит! А почему их всего 8, так было всегда?
Это сложилось исторически:
- Любой символ английского алфавита вписывается в 1 байт
- Для работы с десятичными значениями удобно пользоваться количеством бит, кратным 4 (BCD – Binary-Coded Decimal)
- 8 – степень двойки
- Увеличение числа бит приведёт к большему непроизводительному расходу памяти и усложнению процессоров
Ранее байт мог состоять из 7 и из 6 бит, но потом поняли, что 8 битов самое удобное значение.
А кодировать можно только числа? Нет, конечно, все что угодно!
- текст? сопоставим символ с числом! (ASCII)
- изображение? разложим на цвета и обозначим их интенсивность числом! (RGB)
- звук? измерим интенсивность и обозначим числом! (WAV)
Всё есть число!
А числа – нули и единицы
В качестве дополнения советуем почитать книгу: Чарльз Петцольд «Код. Тайный язык информатики» !