Лекция: Кодирование информации

Для автоматизации работы с данными, относящимися к разным типам, унифицируют их форму представления. Это можно сделать с помощью кодирования данных на единой основе. Язык – это система кодирования понятий. Чтобы записать слова, применяется опять же кодирование – азбука. Проблемами универсального кодирования занимаются различные области науки, техники, культуры. Подготовка данных для обработки на компьютере в информатике имеет свою специфику, связанную с электроникой.

История кодирования очень обширна. В быту используются такие системы кодировки, например, как код Морзе*, Брайля**, код морских сигналов и т. п. В вычислительной технике система кодирования называется двоичным кодированием и основана на представление данных в двоичной системе. Такое представление наиболее просто реализовать в электронных схемах с двумя устойчивыми состояниями: есть ток – 1, нет тока – 0. Таким образом, используются два знака 0 и 1. Эти знаки называются двоичными цифрами (binary digit или сокращенно bit). Двумя битами можно закодировать четыре различных комбинации 00, 01, 10 и 11, три бита дадут восемь комбинаций 000, 001, 010, 011, 100, 101, 110, 111 и т. д. Общая формула имеет вид, (1.4.1)

где — количество независимых кодируемых значений, — разрядность кодирования, принятая в данной системе.

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

Непозиционные системы для записи числа используют бесконечное множество символов, и значение символа не зависит от того места, которое он занимает в числе. Примером непозиционной системы может служить римская система счисления. Например, числа один, два и три кодируются буквой I: I, II, III. Для записи числа пять выбирается новый символ V, для десяти – Х и т. д. Кроме сложной записи самих чисел такая форма их представления приводит к очень сложным правилам арифметики.

Число в позиционной системе счисления с основанием может быть представлено в виде многочлена по степеням следующим образом

, (1.4.2)

где — запись числа в системе счисления с основанием, — цифра в -ом разряде, — число разрядов целой части, — число разрядов дробной части.

Записывая слева направо числа, получим закодированную запись числа в -ичной системе счисления. В двоичной системе счисления все арифметические действия выполняются весьма просто, например таблица сложения и умножения будет иметь восемь правил (см. табл. 1.1). Однако запись числа в двоичной системе счисления длиннее записи того же числа в десятичной системе счисления в раз (примерно в 3.3 раза). Это громоздко и неудобно для использования.

Наряду с двоичной системой в информатике применяются восьмеричная и шестнадцатеричная системы счисления. Восьмеричная система счисления имеет восемь цифр: 0, 1, 2, 3, 4, 5, 6, 7, 8, шестнадцатеричная шестнадцать – 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.

Таблица 1.1

 

0+0=0 0×0=0
0=1=1 0×1=0
1+0=1 1×0=0
1+1=0 1×1=1

 

Если из контекста не ясно, к какой системе счисления относится запись, то основание системы записывается после числа в виде нижнего индекса. Например, одно и то же число 137 запишется в двоичной, восьмеричной и шестнадцатеричной системе следующим образом: .

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

Таблица 1.2

 

Сложение Умножение
+ ×

 

1.4.2. Преобразование чисел из одной системы счисления в другую. Преобразование из десятичной в прочие системы счисления производится с помощью правил умножения и деления. При этом целая и дробная части переводятся отдельно. Рассмотрим алгоритм перевода на примере целого числа 137 в двоичную систему. Разделим его нацело на 2, получим, остаток 1. Полученный результат можно записать следующим образом:. Продолжим операцию деления дальше

, остаток 0, ;

, остаток 0, ;

, остаток 1,

;

, остаток 0,

;

, остаток 0,

;

, остаток 0,

.

Далее процесс продолжать нельзя, т. к. 0 не делится нацело на 2. Таким образом, последовательное деление нацело на 2 позволяет разложить число по степеням двойки, а это в краткой записи и есть двоичное изображение числа:. Все приведенные выкладки можно сократить, записав процесс деления в виде следующей схемы:

 

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

 

 

Для дробных чисел правило последовательного деления заменяется правилом последовательного умножения. Переведем 0.2 из десятичной системы в двоичную систему счисления. Умножим 0.2 на 2, т. е. или .

, ;

, ;

,

;

,

,

т. е.. Все вышеприведенные выкладки можно свести в следующую таблицу 1.3.

Таблица 1.3

 

0.2
0.4
0.8
0.6
0.2

 

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

Обратный перевод чисел из двоичной системы счисления в десятичную производится методом подстановки. Для этого необходимо представить число по формуле (1.4.2):

.

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

1.4.3. Представление целых и действительных чисел в двоичном коде. Совокупность двоичных разрядов данных в ЭВМ образуют некий битовый рисунок. Группа из восьми взаимосвязанных битов называется байтом. Байт – это минимальная по размеру адресуемая часть памяти компьютера.

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

Целые положительные числа от 0 до 255 можно представить непосредственно в двоичной системе счисления, при этом они будут занимать один байт в памяти компьютера (см. табл. 1.4).

Таблица 1.4

 

Число Двоичный код
0000 0000
0000 0001
0000 0010
0000 0011
1111 1111

 

Знак отрицательного числа кодируется обычно старшим битом, нуль интерпретируется как плюс, единица как минус. Поскольку один бит будет занят, то одним байтом могут быть закодированы целые числа в интервале от –127 до +127. Такой способ представления целых чисел называется прямым кодом. Существует способ кодирования отрицательных целых чисел в обратном коде. В этом случае положительные числа совпадают с положительными числами в прямом коде, а отрицательные получаются в результате вычитания из двоичного числа 1 0000 0000 соответствующего положительного числа, например, число –7 получит код 1111 1000. Целые числа больших диапазонов представляются в двухбайтовых и четырехбайтовых ячейках памяти.

Точность представления действительных чисел в памяти ЭВМ ограничена. Для представления действительных чисел используется форма их записи, называемая формойс плавающей точкой:, (1.4.3)

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

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

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

 

 

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

 

еще рефераты
Еще работы по информатике