- •Предисловие.
- •1. Введение.
- •2. Количество информации.
- •2.1. Формула хартли.
- •2.2. Формула шеннона.
- •2.3. Свойства энтропии.
- •2.4. Энтропия в информатике и физике.
- •2.5. Вероятностный и объемный подходы к измерению количества информации.
- •2.6. Различные аспекты анализа информации.
- •3. Принципы кодирования и декодирования информации.
- •3.1. Буква (знак, символ). Алфавит.
- •3.2. Кодировщик и декодировщик.
- •3.3. Международные системы байтового кодирования.
- •3.4. Помехоустойчивое кодирование информации.
- •4. Передача информации.
- •4.1. Из истории развития передачи информации.
- •4.2 . Общая схема передачи информации.
- •4.3. Теорема котельникова.
- •4.4.Информационная емкость дискретного сигнала (сообщения). Формула шеннона.
- •4.5. Предельная скорость передачи информации по шеннону. Формула хартли - шеннона.
- •4.6. Теорема шеннона для дискретного канала с помехами.
- •5. Дискретные двоичные (бинарные) сигналы.
- •5.1. Регенерация двоичных сигналов.
- •5.2. Помехозащищенность двоичных сигналов.
- •5.3. Кодирование двоичных сигналов.
- •6. Аналоговые и дискретные процессы.
- •6.1. Аналоговые и дискретные сигналы.
- •6.2. Измерение отношения сигнал – шум.
- •6.3. Дискретизация и кодирование аналогового сигнала.
- •7. Цифровая телефонная связь.
- •8. Цифровая телеграфная связь.
- •9. Цифровое телевидение.
- •10. Системы передачи информации
- •10.1. Параметры радиосигналов.
- •10.2. Многоканальные линии связи. Уплотнение информации.
- •11. Оптоволоконная связь.
- •11.1. Из истории кабельной связи.
- •11.2. Принцип оптоволоконной связи.
- •12. Локальные сети.
- •12.1. Аппаратные средства.
- •12.2. Конфигурация локальных сетей.
- •12.3. Организация обмена информацией.
- •13. Спутниковая связь.
- •13.1. Общая характеристика спутниковой связи.
- •13.2. Принципы спутниковой связи.
- •14. Системы счисления.
- •14.1. Непозиционные системы счисления.
- •14.2. Позиционные системы счисления.
- •14.3. Перевод чисел из десятичной системы в другую систему.
- •14.4. Перевод чисел в десятичную систему из других систем.
- •14.5. Взаимные преобразования двоичных, восьмеричных и шестнадцатеричных чисел.
- •14.6. Двоично-десятичная система.
- •15. Языки программирования.
- •15.1. Языки программирования. Общая характеристика.
- •15.2. Язык программирования си. История создания. Общая характеристика.
- •15.3. Язык программирования си. Процесс создания исполняемого файла.
- •15.4. Язык программирования си. Распределение памяти программы.
- •15.5. Язык программирования си. Основные понятия.
- •15.6. Язык программирования си. Данные.
- •15.7. Язык программирования си. Структура простой программы.
- •Приложение 1. Система семибитного кодирования.
- •Приложение 2. Модифицированная альтернативная кодировка.
- •Приложение 3: клод элвуд шеннон.
- •Литература.
- •Оглавление.
14.5. Взаимные преобразования двоичных, восьмеричных и шестнадцатеричных чисел.
С практической точки зрения представляет интерес процедура взаимного преобразования двоичных, восьмеричных и шестнадцатеричных чисел.
Для перевода целого двоичного числа в восьмеричное необходимо:
-
разбить его справа налево на группы по 3 цифры (двоичные триады), причем самая левая группа может содержать менее трех двоичных цифр.
-
каждой группе поставить в соответствие ее восьмеричный эквивалент.
110110012 = 11 011 001;
110110012 = 3318
Для перевода целого двоичного числа в шестнадцатеричное необходимо:
-
разбить его справа налево на группы по 4 цифры (двоичные тетрады), причем самая левая группа может содержать менее трех двоичных цифр.
-
каждой группе поставить в соответствие ее шестнадцатеричный эквивалент.
11000110110012 = 1 1000 1101 1001;
110001101100I(2)= 18D9(16).;
Для перевода дробных частей двоичных чисел в восьмеричную или шестнадцатеричную системы аналогичное разбиение на триады или тетрады производится от точки вправо (с дополнением недостающих последних цифр нулями):
0,11000111012 =0,110 001 110 100 ;
0,11000111012 = 0,6164(8);
0,1100011101(2) = 0,1100 0111 0100 = 0,С74(16);
0,1100011101(2) = 0,С74(16).
Перевод восьмеричных (шестнадцатеричных) чисел в двоичные производится обратным путем - сопоставлением каждому знаку числа соответствующей тройки (четверки) двоичных цифр.
Преобразования чисел из двоичной в восьмеричную и шестнадцатеричную системы и наоборот столь просты (по сравнению с операциями между этими тремя системами и привычной нам десятичной) потому, что числа 8 и 16 являются целыми степенями числа 2. Этой простотой и объясняется популярность восьмеричной и шестнадцатеричной систем в вычислительной технике и программировании.
14.6. Двоично-десятичная система.
В двоично-десятичной системе каждая десятичная цифра кодируется комбинацией цифр двоичной системы. Обозначение каждой десятичной цифры называется тетрадой.
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
0000 |
0001 |
0010 |
0011 |
0100 |
0101 |
0110 |
0111 |
1000 |
1001 |
12510=0001 0010 01012-10
15. Языки программирования.
15.1. Языки программирования. Общая характеристика.
Языки программирования являются искусственными языками, специально созданными для общения человека с ЭВМ. Языки программирования представляют собой системы обозначений, предназначенные для точного описания программ или алгоритмов для ЭВМ. Языки программирования, также как и естественные языки (русский, английский и т.д.), имеют алфавит, синтаксис и семантику. Алфавит - фиксированный для данного языка упорядоченный набор знаков, принятый для составления текста программы на этом языке. Синтаксис – система правил, определяющих допустимые конструкции языка программирования из знаков алфавита. Семантика – система правил, определяющих однозначный смысл языковых конструкций. Синтаксис и семантика языков программирования строго определены. Поэтому они при правильном применении не допускают свободного толкования, характерного для естественных языков.
Языки программирования можно разделить на машинно-ориентированные языки низкого уровня (ассемблеры) и машинно-независимые языки высокого уровня (Фортран, Паскаль, Си и др.).
Ассемблеры представляют собой системы обозначений, предназначенные для точного описания программ или алгоритмов для ЭВМ, написанных в машинном коде (т.е. написанных символами 0, 1). При этом комбинации единиц и нулей, выражающие машинные команды, заменяются обозначениями, представляющими собой аббревиатуры английских слов. Например: ADD – сложить, SUB – вычесть, MUL – умножить, DIV – разделить и т. п. Предположим, что машинная команда, написанная на двоичном машинном коде 1011 1010 1001 , приводит к тому, что содержимое ячейки памяти A складывается с содержимым ячейки памяти B и результат заносится в ячейку памяти A. На языке ассемблера этот машинный код можно заменить строкой обозначений: ADD A D . Такая запись для программиста удобней, чем запись на машинном коде, но ее не поймет центральный процессор, который понимает только двоичный машинный код. Поэтому программы, написанные на ассемблере, надо переводить (транслировать) обратно в двоичный машинный код. Это делает специальная программа, которая также называется ассемблер. Таким образом, термин ассемблер может означать язык программирования и программу транслятор. Ассемблеры позволяют организовать обмен содержимым между ячейками памяти, элементарные арифметические и логические операции.
Языки высокого уровня рассмотрим на примере языка Си, широко применяемому в настоящее время для создания системного и прикладного программного обеспечения, в том числе программного обеспечения робототехнических и мехатронных систем.