Прикладная информатика в экономике Бийск Издательство Алтайского государственного технического университета им. И. И. Ползунова 2008

Вид материалаДокументы

Содержание


2.6 Кодирование информации
2.7 Системы счисления. Перевод из одной системы счисления в другую
Подобный материал:
1   2   3   4   5   6   7   8   9   10   ...   25

2.6 Кодирование информации



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

При кодировании могут ставиться разные цели и, соответственно, применяться разные методы. Наиболее распространенными целями кодирования являются следующие:
  • экономность, то есть уменьшение избыточности сообщения;
  • повышение скорости передачи или обработки;
  • надежность, то есть защита от случайных искажений;
  • сохранность, то есть защита от нежелательного доступа к информации;
  • удобство физической реализации (например, двоичное кодирование информации в ЭВМ);
  • удобство восприятия.

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

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

Для того чтобы сообщение было передано от источника к потребителю, оно должно быть каким-либо образом отображено, зафиксировано. Такое отображение осуществляется с помощью некоторых символов (знаков). Знак – это элемент конечного множества отличных друг от друга элементов. Знак вместе с его смыслом называют символом. Набор знаков, в котором определен их порядок, называется алфавитом. Алфавит, состоящий из двух знаков, называется двоичным алфавитом. Кодированием называется процесс преобразования одного набора знаков в другой набор знаков. Кодирование – способ хранения и передачи информации, форма представления ее на носителе. Шифрование – это тоже кодирование сообщения отправителем, но такое, чтобы оно было непонятно несанкционированному пользователю. Последовательность символов алфавита называется словом. Сообщение фиксируется как последовательность слов. Простой и всем понятный пример такого представления сообщения – его запись словами, составленными из букв русского алфавита. В канале связи способ представления сообщения может изменяться: один алфавит заменяться другим. Для того чтобы закодировать информацию, необходимо выбрать код. Кодом называется правило для преобразования одного набора знаков в другой набор знаков. Длиной кода называется такое количество знаков, которое используется при кодировании.

Количество символов в алфавите кодирования и длина кода – совершенно разные вещи. Например, в русском алфавите 33 буквы, а слова могут быть длиной в 1, 2, 3 и т.д. буквы. Код может быть постоянной и непостоянной длины. В технике коды различной длины встречаются довольно редко. Исключением является лишь код Морзе. Азбука Морзе – это троичный код с набором знаков: точка, тире, пауза. Пауза используется в качестве разделителя между буквами и словами, так как длина кода непостоянна.

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

2.7 Системы счисления. Перевод из одной системы счисления в другую



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

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

В позиционных системах счисления вес каждой цифры изменяется в зависимости от ее положения (позиции).

Рассмотрим более подробно позиционную.

За основание системы можно принять любое натуральное число – два, три, четыре и т.д. Следовательно, возможно бесчисленное множество позиционных систем: двоичная, троичная, четверичная, восьмеричная и т.д.
  • двоичная (используются цифры 0, 1);
  • восьмеричная (используются цифры 0, 1, ..., 7);
  • шестнадцатеричная (для первых целых чисел от нуля до девяти используются цифры 0, 1, ..., 9, а для следующих чисел  от десяти до пятнадцати – в качестве цифр используются символы A, B, C, D, E, F).

В таблице 2.1 представлена запись чисел в двоичной, восьмеричной и шестнадцатеричной системах.

Таблица 2.1 – Запись чисел в системах счисления, кратных двум

10-ичная

2-ичная

8-ичная

16-ичная

0

0

0

0

1

1

1

1

2

10

2

2

3

11

3

3

4

100

4

4

5

101

5

5

6

110

6

6

7

111

7

7

8

1000

10

8

9

1001

11

9

10

1010

12

A

11

1011

13

B

12

1100

14

C

13

1101

15

D

14

1110

16

E

15

1111

17

F

16

10000

20

10

17

10001

21

11

18

10010

22

12

19

10011

23

13

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

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

Недостаток двоичной системы  быстрый рост числа разрядов, необходимых для записи чисел.

Троичное кодирование, несмотря на ряд технических попыток, успеха не имело. В Советском Союзе в 60-е г. выпускался малой серией компьютер с троичной системой счисления при кодировании, который назывался «Сетунь», компьютеры с десятичной системой счисления так и не вышли из стен лабораторий.

При переводе целого десятичного числа в систему с основанием q его необходимо последовательно делить на q до тех пор, пока не будет частное, меньшее или равное q-1. Число в системе с основанием q записывается как последовательность остатков от деления вместе с последним частным, записанных в обратном порядке.

Пример.

Перевод числа 75 из десятичной системы в двоичную, восьмеричную и шестнадцатеричную:

75

2













75

8







75

16




74

37

2










72

9

8




64

4




1

36

18

2







3

8

1




11










1

18

9

2







1






















0

8

4

2































1

4

2

2































0

2

1


































0





























































то есть 7510 = 1 001 0112 = 1138 = 4B16.

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

(an…a3a2a1)2 = (a1 + a2·2 + a3·22 + … + an·2n-1)10.

Пример:

11012 = (1 + 0·2 + 1·4 + 1·8)10 = (1 + 4 + 8)10 = 1310;

11102 = (0 + 1·2 + 1·4 + 1·8)10 = (2 + 4 + 8)10 = 1410.

Эта формула может быть применена и для перевода из любой
q-ичной системы счисления в десятичную.

Пример:

Переведем из восьмеричной и шестнадцатеричной систем счисления в десятичную числа 45 и 6Е, воспользовавшись вышеприведенной формулой.

458 = (5·80+4·81)10 = (5+32)10 = 3710;

16 = (14·160+6·161)10 = (14+96)10 = 11010.

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

Пример.

Перевод числа 0,35 из десятичной системы в двоичную, восьмеричную и шестнадцатеричную:


0,35







0,35







0,35

2







8







16

0,7







2,80







5,60

2







8







16

1,4







6,40







9,60

2







8







16

0,8







3,20







9,60

2







8










1,6







1,60










2



















1,2








































то есть 0,3510 = 0,010112 = 0,2638 = 0,5916 .