Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лк3.Кодирование символьной информации.ASCIIкодировка.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
76.29 Кб
Скачать

Представление данных в компьютере

Кодирование информации — отображение данных на кодовые слова.

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

Виды кодов

  • Код фиксированной длины (fixed-length code) — кодирование каждого символа производится с помощью строк одинаковой длины. Также он называется равномерным или блоковым кодом.

  • Код переменной длины (variable-length code) — кодирование производится с помощью строк переменной длины. Также называется неравномерным кодом.

  • Префиксный код — код, в котором, никакое кодовое слово не является началом другого. Аналогично, можно определить постфиксный код — это код, в котором никакое кодовое слово не является концом другого.

Все вышеперечисленные коды являются однозначно декодируемыми (англ. uniquely decodable) — для такого кода любое слово, составленное из кодовых слов, можно декодировать только единственным способом.

Примеры кодов

  • ASCII — равномерный.

  • Код Хаффмана — префиксный.

  • Азбука Морзе — не является ни равномерным, ни префиксным, тем не менее, однозначно декодируемый за счет использования пауз.

Любые данные (числа, символы, графические и звуковые образы) в компьютере представляются в виде последовательностей из нулей и единиц. Эти последовательности можно считать словами в алфавите {0,1}, так что обработку данных внутри компьютера можно воспринимать как преобразование слов из нулей и единиц по правилам, зафиксированным в микросхемах процессора. Такой взгляд роднит вычислительные машины с абстрактными вычислителями (машины Тьюринга, нормальные алгоритмы Маркова).

Элемент последовательности из нулей и единиц (член такой последовательности) называют битом. Именительный падеж — бит.

Как определить, какое целое число представляет тот или иной битовый набор? Возможны разные способы. Например, можно считать, что представляемое число равно количеству единиц в битовом наборе ("единичная" система счисления). Такой способ позволяет представить всего k различных целых чисел от 0 до k—1, где k — длина набора. Очевидно, что этот способ неэкономный — одному и тому же числу могут соответствовать несколько различных наборов. Количество всевозможных битовых наборов длины k равно 2k , поэтому выгоднее различным наборам поставить в соответствие различные числа. Это позволит представить 2k различных чисел. Обычно рассматривают диапазон целых чисел от 0 до 2k -1.

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

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

  • не требовал усложнения архитектуры процессора для выполнения арифметических операций с отрицательными числами;

  • не усложнял арифметические действия;

  • хранил бы одинаковое количество положительных и отрицательных чисел.