stringtranslate.com

Код

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

Процесс кодирования преобразует информацию из источника в символы для передачи или хранения. Декодирование — это обратный процесс, при котором кодовые символы преобразуются обратно в форму, понятную получателю, например, в английскую и/или испанскую форму.

Одной из причин кодирования является обеспечение возможности общения в местах, где обычный простой язык , устный или письменный, затруднен или невозможен. Например, семафор , где конфигурация флагов , которые держит сигнальщик или руки семафорной башни, кодирует части сообщения, обычно отдельные буквы и цифры. Другой человек, стоящий на большом расстоянии, может интерпретировать флаги и воспроизводить посланные слова.

Теория

В теории информации и информатике код обычно рассматривается как алгоритм , который уникальным образом представляет символы из некоторого исходного алфавита с помощью закодированных строк, которые могут находиться в каком-то другом целевом алфавите. Расширение кода представления последовательностей символов в исходном алфавите получается путем объединения закодированных строк.

Прежде чем дать математически точное определение, приведем краткий пример. Отображение

— это код, исходным алфавитом которого является множество , а целевым алфавитом — множество . Используя расширение кода, закодированная строка 0011001 может быть сгруппирована в кодовые слова как 0 011 0 01, а они, в свою очередь, могут быть декодированы в последовательность исходных символов acab .

Используя термины теории формального языка , точное математическое определение этой концепции выглядит следующим образом: пусть S и T — два конечных множества, называемые исходным и целевым алфавитами соответственно. Код — это полная функция , отображающая каждый символ из S в последовательность символов над T. Расширение это гомоморфизм в , который естественным образом отображает каждую последовательность исходных символов в последовательность целевых символов.

Коды переменной длины

В этом разделе мы рассматриваем коды, которые кодируют каждый символ исходного (открытого текста) кодовым словом из некоторого словаря, а объединение таких кодовых слов дает нам закодированную строку. Коды переменной длины особенно полезны, когда символы открытого текста имеют разную вероятность; см. также энтропийное кодирование .

Префиксный код — это код со «свойством префикса»: в системе нет допустимого кодового слова, которое является префиксом ( началом) любого другого допустимого кодового слова в наборе. Кодирование Хаффмана — наиболее известный алгоритм получения префиксных кодов. Префиксные коды широко называются «кодами Хаффмана», даже если код не был создан с помощью алгоритма Хаффмана. Другими примерами префиксных кодов являются телефонные коды страны , части ISBN страны и издателя , а также вторичные коды синхронизации, используемые в стандарте беспроводной связи UMTS WCDMA 3G.

Неравенство Крафта характеризует возможные наборы длин кодовых слов в префиксном коде. Практически любой однозначно декодируемый код «один ко многим», не обязательно префиксный, должен удовлетворять неравенству Крафта.

Коды, исправляющие ошибки

Коды также могут использоваться для представления данных более устойчивым к ошибкам при передаче или хранении. Этот так называемый код, исправляющий ошибки, работает путем включения тщательно продуманной избыточности в хранимые (или передаваемые) данные. Примеры включают коды Хэмминга , Рида-Соломона , Рида-Мюллера , Уолша-Адамара , Бозе-Чаудхури-Хохкенхема , Турбо , Голея , коды алгебраической геометрии , коды с низкой плотностью проверки на четность и пространственно-временные коды . Коды обнаружения ошибок могут быть оптимизированы для обнаружения пакетных ошибок или случайных ошибок .

Примеры

Коды в общении, используемые для краткости

Кабельный код заменяет слова (например, «отправка » или «счет-фактура» ) более короткими словами, позволяя отправлять ту же информацию с меньшим количеством символов , быстрее и дешевле.

Для краткости можно использовать коды. Когда телеграфные сообщения стали современным средством быстрой связи на большие расстояния, были разработаны сложные системы коммерческих кодов , которые кодировали полные фразы в отдельные роты (обычно пятиминутные группы), так что телеграфисты стали знакомы с такими «словами», как BYOXO . («Ты пытаешься выскользнуть из нашей сделки?»), ЛИУЙ («Почему ты не отвечаешь на мой вопрос?»), БМУЛД («Ты скунс!») или АЙЫЛУ («Неясно закодировано, повторите более четко»). Кодовые слова выбирались по разным причинам: длина , произносимость и т. д. Значения выбирались в соответствии с предполагаемыми потребностями: коммерческие переговоры, военные термины для военных кодов, дипломатические термины для дипломатических кодов, любые и все предыдущие для шпионских кодов. Распространялись кодовые книги и издатели кодовых книг, в том числе одна из них использовалась в качестве прикрытия для Американской Черной палаты , которой руководил Герберт Ярдли между Первой и Второй мировыми войнами. Целью большинства этих кодексов была экономия на стоимости кабеля. Использование кодирования данных для сжатия данных появилось еще до компьютерной эры; Ранним примером является телеграфный код Морзе , в котором более часто используемые символы имеют более короткое представление. Такие методы, как кодирование Хаффмана, теперь используются компьютерными алгоритмами для сжатия больших файлов данных в более компактную форму для хранения или передачи.

Кодировки символов

Кодировки символов — это представления текстовых данных. Данная кодировка символов может быть связана с определенным набором символов (набором символов, которые она может представлять), хотя некоторые наборы символов имеют несколько кодировок символов, и наоборот. Кодировки символов могут быть широко сгруппированы в зависимости от количества байтов, необходимых для представления одного символа: существуют однобайтовые кодировки, многобайтовые (также называемые широкими) кодировки и кодировки переменной ширины (также называемые переменной длиной). Самые ранние кодировки символов были однобайтовыми, наиболее известным примером которых является ASCII . ASCII продолжает использоваться и сегодня, например, в заголовках HTTP . Однако однобайтовые кодировки не могут моделировать наборы символов длиной более 256 символов. Сценарии, требующие больших наборов символов, таких как китайский, японский и корейский, должны быть представлены в многобайтовых кодировках. Ранние многобайтовые кодировки имели фиксированную длину, то есть, хотя каждый символ был представлен более чем одним байтом, все символы использовали одинаковое количество байтов («длина слова»), что делало их пригодными для декодирования с помощью таблицы поиска. Последняя группа — кодировки переменной ширины — представляет собой подмножество многобайтовых кодировок. Они используют более сложную логику кодирования и декодирования для эффективного представления больших наборов символов, сохраняя при этом представление более часто используемых символов короче или сохраняя свойства обратной совместимости. В эту группу входят UTF-8 — кодировка набора символов Юникода ; UTF-8 — наиболее распространенная кодировка текстовых медиа в Интернете.

Генетический код

Биологические организмы содержат генетический материал, который используется для контроля их функций и развития. Это ДНК , содержащая единицы, называемые генами , из которых происходит информационная РНК . Это, в свою очередь, производит белки посредством генетического кода , в котором ряд триплетов ( кодонов ) из четырех возможных нуклеотидов может быть транслирован в одну из двадцати возможных аминокислот . Последовательность кодонов приводит к соответствующей последовательности аминокислот, образующих молекулу белка; тип кодона, называемый стоп-кодоном, сигнализирует об окончании последовательности.

Код Гёделя

В математике код Гёделя послужил основой для доказательства теоремы Гёделя о неполноте . Здесь идея заключалась в том, чтобы сопоставить математическую запись с натуральным числом (с использованием нумерации Гёделя ).

Другой

Существуют коды, использующие цвета, например, светофоры , цветовой код , используемый для обозначения номинального значения электрических резисторов или мусорных баков, предназначенных для определенных типов мусора (бумага, стекло, органический и т. д.).

В маркетинге коды купонов можно использовать для получения финансовой скидки или скидки при покупке продукта у (обычного интернет-магазина).

В военной среде специфические звуки корнета используются для разных целей: для обозначения некоторых моментов дня, для управления пехотой на поле боя и т. д.

Системы коммуникации для людей с сенсорными нарушениями, такие как язык жестов для глухих и шрифт Брайля для слепых, основаны на двигательных или тактильных кодах.

Музыкальные партитуры являются наиболее распространенным способом кодирования музыки .

Определенные игры имеют свои собственные кодовые системы для записи матчей, например, шахматную нотацию .

Криптография

В истории криптографии коды когда-то были обычным явлением для обеспечения конфиденциальности сообщений, хотя теперь вместо них используются шифры .

Секретные коды, предназначенные для сокрытия реальных сообщений, от серьезных (в основном шпионаж в военной сфере, дипломатии, бизнесе и т. д.) до тривиальных (романтика, игры), могут быть любыми образными кодировками: цветами , игровыми картами, одеждой, веерами, шляпами. , мелодии, птицы и т. д., в которых единственным требованием является предварительное соглашение о значении как отправителя, так и получателя.

Другие примеры

Другие примеры кодирования включают в себя:

Другие примеры декодирования включают в себя:

Коды и сокращения

Акронимы и аббревиатуры можно считать кодами, и в некотором смысле все языки и системы письменности являются кодами человеческого мышления.

Коды аэропортов Международной ассоциации воздушного транспорта представляют собой трехбуквенные коды, используемые для обозначения аэропортов и бирок для сумок . Коды станций аналогично используются на железных дорогах, но обычно являются национальными, поэтому один и тот же код может использоваться для разных станций, если они находятся в разных странах.

Иногда кодовое слово обретает независимое существование (и значение), в то время как исходная эквивалентная фраза забывается или, по крайней мере, больше не имеет точного значения, приписываемого кодовому слову. Например, цифра «30» широко использовалась в журналистике для обозначения «конца истории» и использовалась в других контекстах для обозначения «конца». [1] [2]

Смотрите также

Рекомендации

  1. Коган, Хадасс «Так почему бы не 29». Архивировано 12 декабря 2010 г. в журнале Wayback Machine American Journalism Review. Проверено 3 июля 2012 г.
  2. ^ «Код 92 Western Union» и «Телеграфные цифры» Вуда» . Ассоциация войск связи. 1996. Архивировано из оригинала 9 мая 2012 г. Проверено 3 июля 2012 г.

дальнейшее чтение