9.4. Выполнение арифметических операций в - Web-4-U

advertisement
6. Условия, обеспечивающие передачу информации (данных) от одного
человека другому человеку
и от одного поколения человечества другому поколению.
1. Должна существовать система представления информации (данных) - язык.
2. Должна существовать система графического (знакового) представления на
носителе элементов языка.
3. Должны существовать носители, на которых может храниться (отображаться)
информация (данные).
4. Должны существовать технические средства и способы передачи с их помощью
информации (данных) от человека другому человеку в реальном времени.
Носитель данных – физическая среда, которая обеспечивает графическое
(знаковое) отображение элементов какого-то языка.
Носитель данных: камень, береста, глиняные черепки, папирус, бумага, магнитный
слой, вещество, которое изменяет свое состояние под воздействием луча лазера.
7. Язык
7.1. Типы языков
1. Сложный (естественный) язык;
2. Простой язык.
Сложный язык (естественный): система, обеспечивающая именование объектов
окружающего мира, описание и именование отношений между ними, описание и
именование свойств объектов, создание и описание абстрактных понятий.
Термин «система» используется в определении языка, поскольку во всех
естественных языках существуют правила формирования предложений.
Сложный язык появился вместе с появлением человека и эволюционирует вместе с
развитием человека. Естественный язык есть средство общения между людьми, обмена
мыслями и взаимного понимания людей в обществе.
Мысль: то, что является результатом размышления.
Мышление: способность человека рассуждать, процесс отражения объективной
реальности (окружающего мира) в представлениях, суждениях, понятиях.
Смысл: внутреннее содержание, значение чего-либо, постигаемое разумом.
Мы уже говорили о сложности понятия «информация». Это утверждение только
подтверждается необходимостью рассмотрения вышеназванных понятий, определения
которых взяты из словаря русского языка С.И.Ожегова.
Понятие: явление, зарегистрированное человеком, как биологическим объектом,
или с помощью технических средств, отношение между объектами, качество, свойство
объекта и т.д., которое определено человеком словом естественного языка.
Например, "холод", "самомнение", "хороший" и т.д.
Простой язык: система, обеспечивающая только именование объектов.
Простой язык создаётся человеком для применения либо в каких-то ограниченных
случаях, либо в различных технических средствах.
1
7.2. Стадии эволюции естественного языка:
1.
Установление биологическим объектом соответствия между каждым объектом
окружающего мира и определенным звуком, который может издать биологический объект
(Рис. 7.2.1.).
2.
Установление биологическим объектом соответствия между каждым объектом
окружающего мира и комбинацией звуков.
3.
Установление человеком соответствия между каждым объектом окружающего
мира и комбинацией символов (графических знаков), представленных на каком-то
носителе (Рис. 7.2.2.).
7.3. Элементы языка
Алфавит: небольшой набор элементов (звуков, символов), из которых с помощью
их группирования можно создавать как угодно много имен объектов (понятий, свойств и
т.д.).
Рис. 7.2.1.
Слово (в простом языке): определённым образом отобранная группа элементов
алфавита, обозначающая имя объекта.
Слово (в сложном языке): определённым образом отобранная группа элементов
алфавита, составляющая имя какого-либо объекта, его свойство, отношение между
объектами, виртуальное, абстрактное понятие в соответствии с правилами языка (как
системы).
2
Рис. 7.2.2.
Предложение: грамматически и интонационно оформленное сочетание слов или
отдельное слово, выражающее законченную мысль.
Грамматика: совокупность правил, в соответствии с которыми из элементов
алфавита образуются и изменяются слова конкретного языка.
Синтаксис: правила, согласно которым соединяются слова, строятся предложения
из слов языка.
Семантика: соотнесение слова со значением и смыслом.
Сообщение: последовательность слов или упорядоченная последовательность
элементов какого-либо языка, передаваемая от человека человеку или от одного
технического средства другому техническому средству.
Из определений можно видеть, что понятие «предложение» является смысловым, а
понятие «сообщение» является формальным.
Способы передачи сообщений: звуковой (устная речь), письменный (письменные
сообщения, представленные на каком-то носителе), с помощью технических средств.
7.4. Знания
Знания человека: множество имен объектов и отношений между ними, которые
хранятся в памяти отдельного индивидуума и смысл которых этот индивидуум понимает.
Знания человечества: множество имен объектов и отношений между ними,
которые хранятся на носителях как совокупность предложений на каком-то языке.
Когда человек в результате обработки данных узнает о новых объектах и новых
отношениях между объектами, уровень его знаний повышается. Применительно к этой
ситуации говорят: данные информативны.
Противоположный случай: человек при приеме сигналов и их обработке не
увеличил уровень своих знаний. Это значит, что данные не информативны.
Причины не увеличения знаний при приеме данных
1. Извлеченная из данных информация уже известна получателю (имеется в составе
его знаний).
2. Извлеченная из данных информация не понятна получателю.
3
Понятность и непонятность информации определяется способностью получателя
связать ее с имеющимися у получателя знаниями.
Пример. Считалось со времен Ньютона, что нервное возбуждение у живых
существ распространяется с огромной скоростью, недоступной прямому измерению.
Итальянский физиолог Гальвани в 1798 г. предположил, что по нервам распространяется
"животное электричество". В 1848 г. было доказано экспериментально, что
распространение нервного возбуждения связано с передачей электрических сигналов.
В 1849 г. Гельмгольц измерил скорость нервного импульса в лягушачьей лапке – 95
км/час. – очень мало для электричества. В 1952 г. было установлено английскими и
австралийскими физиологами, что аксоны выполняют роль не электрических проводников
(металлических проводов), а звеньев релейной линии связи. Поступающий на аксон
электрический сигнал усиливается аксоном и передается только на соседний аксон.
Предположим, этот пример прочитал человек, который не знает смысл понятий
«нервное возбуждение», «электричество», «аксон», «релейная линия связи». Очевидно,
что этот человек не увеличит свои знания и не поймёт этот текст после его прочтения.
Причина – он не может связать имеющиеся знания с новыми данными. Однако, когда он
прочитает определения этих понятий и поймёт их смысл, этот человек уже сможет
установить связь между своими знаниями и новой информацией, эта информация станет
для него понятной, и он увеличит объём своих знаний.
7.5. Некоторые особенности естественных языков
Естественные языки формировались в течение очень длительного времени,
измеряемого веками.
В понятие "формировались" входит: создание в виде слов имен объектов и
понятий, создание и совершенствование правил формирования слов (грамматики) и
предложений (синтаксиса).
Естественные языки находятся в стадии формирования постоянно в связи с тем, что
человек постоянно изучает окружающий его мир и постоянно обнаруживает новые
объекты окружающего мира, новые связи (отношения) между объектами, создаёт новые
понятия для описания свойств новых объектов и их отношений.
В естественных языках каждое слово имеет определенный смысл.
В связи с наличием смысла у каждого слова естественного языка слова в таких
языках могут иметь и реально имеют различную длину. На Рис. 7.5.1. представлен
фрагмент сообщения сложного языка.
Рис. 7.5.1.
X – элемент алфавита, i – номер элемента алфавита в слове.
Несмотря на различную длину слов, благодаря наличию смысла, человек может
идентифицировать каждое слово в сообщении, даже когда слова записаны без
разделителей – пробелов.
Благодаря наличию смысла в словах практически любой человек, прочитав
предложение «Собакасъелакусокпирога» легко сможет выделить каждое слово: «Собака
съела кусок пирога».
4
В разных естественных языках количество знаков в алфавите различно, но каждый
известный человечеству объект окружающего мира, каждое отношение между объектами,
каждое понятие выражены словом в каждом имеющемся в мире естественном языке.
В естественном языке не существует правил присвоения имен новым объектам.
Существуют правила сочетания букв, правила чередования букв.
Учёный обнаружил в природе «новый» объект или выявил «новый» (новый для
человека, но объективно давно существующий) закон. Конструктор создал новое
техническое средство. Во всех этих случаях этому «новому» необходимо присвоить имя.
Очевидно, что при создании имени человек руководствуется конкретными
обстоятельствами, а не какими-то формальными правилами формирования имён.
Например, не существует формальных правил, в соответствии с которыми
конкретному процессу присвоено имя "вычисления", конкретному объекту присвоено
имя "сарай", конкретному закону, присвоено имя "тяготение" и т.д.
В сложных языках отсутствуют также правила создания имени "следующего"
объекта из имени "предыдущего" объекта. Вообще, в сложном языке не существует
понятий "предыдущее" имя, "последующее" имя. Иными словами, не существует
принципа следования одного имени за другим. Подобные правила могут существовать
только при образовании имен родственных объектов (понятий).
Примеры. Биология – биологический, управление – управленческий и т.д.
По отношению к естественному языку можно говорить о родном языке и неродных
языках.
Родной язык человек интуитивно осваивает с момента рождения. На бытовом
уровне любой человек знает и понимает смысл слов родного языка. Однако если этому
человеку предложить текст на другом естественном языке, то человек его не поймёт.
Например:
Hundreds of people in the world are a hundred years old or more. Certain parts of the
world are famous for the long lives of their people. Why do so many people live to a healthy old
age in certain parts of the world?
Для того, чтобы понять смысл текста на иностранном естественном языке
необходимо:
 иметь «таблицу соответствия» (Рис. 7.5.2.);
 знать правила построения предложений.
Таблица соответствия между словами двух естественных языков
Понятия или объекты
(имеют одинаковый смысл
в обоих языках)
английский язык
русский язык
hundred
people
world
year
и т.д.
сотня (сто)
народ (люди)
мир
год
Рис. 7.5.2.
Отметим свойства
языков:
таблицы соответствия между словами для
естественных
5
- таблица соответствия существует для всех известных человечеству объектов
окружающего мира, их свойств, отношений между объектами, понятий и т. д.;
- таблица соответствия обязательно имеет виртуальный столбец, в котором каждый
человек, применяющий разные естественные языки, умозрительно, или по смыслу, или
по описанию представляет либо один и тот же физический объект, либо одно и то же
понятие, либо одно и то же отношение между объектами, либо одно и то же свойство
объекта и т.д.; виртуальный столбец существует по той причине, что на каждом
естественном языке два соответствующих друг другу слова имеют один и тот же смысл;
- установленное таблицей взаимно однозначное соответствие между словом на
любом из двух естественных языков и его смыслом справедливо для всех людей,
использующих конкретный язык (например, не может слову «физиология»
соответствовать какое-либо иное понятие, кроме «наука о жизнедеятельности целостного
организма и его отдельных частей — клеток, органов, функциональных систем»).
7.6. Некоторые особенности простых языков
Естественный язык служит для непосредственного общения людей (Рис. 7.6.1.).
Искусственный язык создан для хранения, обработки и транспортировки информации в
технических средствах (Рис. 7.6.2., 7.6.3.).
Рис. 7.6.1.
Исходя из своего назначения, искусственный язык по сравнению с естественным
языком должен быть более простым, чтобы он мог быть достаточно просто реализован с
помощью технических средств.
Упрощение искусственного языка достигается за счёт того, что из слов
искусственного языка исключён смысл. В простых языках слова не имеют для человека
какого-либо смысла. По этой причине, как правило, слова в простых языках имеют одну
длину, чтобы можно было отделить в сообщении одно слово от другого.
6
Рис. 7.6.2.
Рис. 7.6.3.
7
Фрагмент сообщения простого языка:
Xi – элемент алфавита, i – номер элемента алфавита в слове.
Мы знаем, что каждый естественный язык развивается: появляются новые имена
объектов, отношений между ними, имена новых виртуальных понятий. Очевидно, что
искусственный язык не должен обладать свойством «развитие». Простой аргумент в
пользу этого утверждения: при обнаружении человеком нового объекта окружающего
мира, при создании нового виртуального понятия во все выпущенные и эксплуатируемые
технические средства необходимо вводить дополнения в существующие в них таблицы
соответствия. Такая процедура нереальна.
Количество искусственных языков должно быть существенно меньше количества
естественных языков. Будем рассуждать «от противного». Предположим, что количество
естественных и искусственных языков одинаково. В этом случае теряется сам смысл
создания искусственного языка в дополнение к имеющемуся естественному языку.
Зададимся вопросом: может ли существовать таблица соответствия между словами
естественного и словами искусственного языков, аналогичная таблице между словами
двух естественных языков? «Аналогичная» в том смысле, что имеющемуся в таблице
слову искусственного языка всегда соответствует один и тот же объект окружающего
мира, одно и тоже понятие, одинаково воспринимаемое всеми людьми – носителями
данного естественного языка. Можно уверенно ответить: такая таблица существовать не
может. Причина проста: для упрощения искусственного языка из каждого слова этого
языка удалили смысл для любого человека.
Пример. Основное назначение простых языков с цифровыми алфавитами нумерация объектов, в конкретном, определенном человеком множестве объектов. В
рамках общего определения языка именем каждого объекта множества является его
номер.
В таблице на Рис. 7.6.4. представлен простой язык, который устанавливает
соответствие между каждым словом простого языка и фамилией студента учебной
группы.
Имя
объекта в
простом
языке
Номер
фамилии
во
множестве
1
2
3
4
5
Имя объекта «окружающего мира»
Фамилия
Александров
Афиногенов
Борисова
Буслаев
Воробьев
Рис. 7.6.4.
8
Ограниченность и простота языка состоит в том, что для его слов можно
установить соответствие с названиями товаров, с именами животных в стаде и т.д.
Из рассматриваемого материала и наших рассуждений, принимая во внимание
внутренние логические закономерности, можно сделать вывод: окружающим миром для
технического средства или для ситуации, в которой применяется искусственный язык, не
может быть мир, окружающий человека. Искусственность простого языка состоит в том,
что окружающий мир, для которого применяется этот язык, определяет человек.
В технике часто вместо термина «простой язык» применяется понятие «код».
Код (франц. code): совокупность знаков (символов) и система определенных
правил, при помощи которых информация может быть представлена (закодирована) в
виде набора из таких символов для передачи, обработки и хранения (запоминания).
Как видно, в этом определении объединены понятия «простой язык» и «алфавит».
Кодирование: операция отождествления символов или групп символов одного
кода (языка) с символами или группами символов другого кода (языка).
Кодовая таблица: таблица, в каждой строке которой устанавливается взаимно
однозначное соответствие между символом (группой символов) одного языка и символом
(группой символов) другого языка.
Пример. SMS-сообщение с помощью мобильного телефона:
Tanjusha, Ja tebja ljublju.
8. Количественное измерение информации
Человек всегда стремится измерить количественно нечто, с чем он имеет дело.
Например, чтобы судить о состоянии здоровья человека, необходимо знать не только
качественный, но и количественный состав крови, содержание кальция в костях и т.д.
Сравнение, сопоставление какой-то характеристики, свойства двух объектов невозможно
без количественной оценки характеристики. Т. к. информация связана со сведениями,
которые получает человек, естественно, возникла задача измерения количества
информации. Например, некто прочитал какую-то книгу. Какое количество информации
получил этот человек? Другой человек прочитал ту же книгу. Возникает вопрос, эти два
человека получили одну и ту же информацию или разную? Если они получили разную
информацию, то как оценить количественно это различие?
Американские учёные А. Хартли и К. Шеннон и российский математик А.Н.
Колмогоров создали формальные подходы к измерению количества информации. В
некоторых случаях их методы позволяют практически определить количество
информации в сообщении, а в некоторых случаях это сделать за разумное время
невозможно.
Рассмотрим 2 подхода к понятию «информация». Для каждого подхода можно
построить индивидуальный «измеритель информации».
Первый подход к понятию «информация»: информация – это отражение
разнообразия в окружающем человека мире. Что такое разнообразие? Это ситуация, когда
человек знает, что может произойти какое-то событие. После того, как событие
произойдёт, можно ожидать один из множества возможных результатов. Конкретный
результат события зависит от условий или факторов, в которых произойдёт это событие.
Реально (в жизни) на событие влияет такое большое количество факторов, что точно
невозможно предсказать, каким будет конкретный результат (Рис. 8.1.).
9
Рис. 8.1.
Крайний случай – отсутствие разнообразия. Мысленно перенесёмся в центр
пустыни Сахара и зададимся вопросом: какова вероятность того, что, пройдя 2 км, путник
встретит водоём? При отсутствии разнообразия существует полная определённость в
отношении конкретного результата наступления какого-то события.
Противоположный крайний случай: качественно сделанная монета. В этом случае
существуют 2 равновероятных результата падения монеты, и полная неопределённость
наступления конкретного результата, например, что при подбрасывании монета упадёт
аверсом вверх. Монета с тем же значением вероятности может упасть вверх и реверсом.
Можно сказать, что разнообразие связано с неопределённостью знаний. В случае с
пустыней Сахара путник знает, что в пределах 2 км. никакого водоёма быть не может. В
случае с монетами человек не знает, каким будет результат при возникновении события падения монеты.
Но когда событие произошло, и человек узнал о его результате, он получил знание
или снял неопределённость знания. Принято считать, что информация есть мера
уменьшения неопределённости знания.
Опыты с монетами – это частный самый простой случай. Реально человек имеет
дело с какой-то ситуацией (будущим событием), которую невозможно «уложить» в рамки
модели с монетами. Если некоторое сообщение приводит к уменьшению
неопределённости знания, то такое сообщение несёт в себе информацию. При этом
возможны следующие переходы «от незнания к знанию» (Рис. 8.2.):
Ситуация до приёма
сообщения
Полное незнание о
ситуации
Полное незнание о
ситуации
Частичное незнание «в
большой степени»
Заключённая в
сообщении информация
о ситуации
Полная
Частичная
Частичная
Ситуация после приёма
сообщения
Полное знание о
ситуации
Частичное знание о
ситуации
Частичное незнание «в
меньшей степени»
Рис. 8.2.
Однако продолжим рассматривать модель с событиями и результатами и
рассмотрим ход рассуждений Хартли А. при выводе формулы определения количества
информации на основе признания того факта, что мир разнообразен. Или иначе,
существует, и очень часто, неопределённость в возникновении одного конкретного
результата из множества возможных при завершении какого-то события.
10
Рис. 8.3.
Из рисунка 8.3. можно видеть, что у человека в отношении результата при будущем
появлении события_1 существует полная определенность, т.к. он заранее (до появления
события_1) знает, каким результатом завершится это событие. В отношении события_2 и
события_3 существует неопределённость. Причём
в отношении события_2
неопределённость меньше по сравнению с неопределённостью в отношении события_3. В
отношении события_2 человеку необходимо угадать только 1 результат из двух, тогда как
в отношении события_3 необходимо угадать 1 результат из четырёх.
Хартли А. предположил, что неопределенность знаний о конкретном результате
при завершении некоторого события есть количество возможных результатов при
возникновении события. В соответствии с этим предположением неопределённость для
события_2 равна 2 (Н2=2), а неопределённость для события_3 равна 4 (Н3=4).
Хартли А. стал рассуждать дальше. Предположим, что существует Событие_n, при
завершении которого возможно возникновение одного из n результатов, и Событие m, при
завершении которого возможно возникновение одного из m результатов. Тогда
неопределённости измеряются соответственно как H(n)=n и H(m)=m. Предположим, что
эти события независимы и происходят одновременно. В этом случае общее количество
результатов – m*n и, исходя из принятого определения неопределённости, общая
неопределённость Hc=H(n)*H(m)=n*m. Хартли А. предположил, что общую
неопределённость логичнее вычислять суммированием.
Кроме того, при данном определении неопределённости возникает противоречие.
При завершении события только одним результатом неопределённость отсутствует, а в
соответствии с определением H(1)=1.
Хартли А. стал искать формулу, которая бы подходила для его предположения, что
должно выполняться следующее равенство:
Hc=H(n)+H(m) или
H(nm)=H(n)+H(m)
Возникает вопрос, как обозначить неопределённость H(m) и H(n), чтобы
выполнялась формула суммирования неопределённостей?
Такое равенство будет выполняться, если для обозначения неопределённости
использовать логарифмическую функцию:
H(m) = log(m);
H(n) = log(n);
H(mn) = log(mn) = log(m) + log(n)
11
Что должно быть основанием логарифма? Основанием логарифма может быть
любое число: 2, 3, 8, 10, 16 и т.д. Хартли А., естественно, решил за единицу измерения
неопределённости считать неопределённость, имеющуюся при наступлении одного из
двух результатов. Итак, H(2) = 1. Это возможно при основании логарифма – «2».
Мера неопределённости для события, имеющего n равновероятных результатов,
получена американским учёным Хартли А. и названа им «энтропия»:
H(n) = log2(n)
Рассматривая наш пример с событиями, можно сказать, что для человека в
отношении события_1 существует полная
определённость, он обладает полной
информацией о результате завершения события_1, и никакие сообщения ему не нужны.
Действительно, в соответствии с формулой Хартли log21= 0 неопределённость равна 0.
Для человека в отношении события_2 существует неопределённость log22 = 1, равная
одной единице, а в отношении события_3 существует неопределённость log24 = 2, равная
двум единицам.
Логично считать: чтобы ликвидировать неопределённость, имеющую конкретное
численное значение, нужно получить информацию в этом же количестве. Для события_1
никаких сообщений получать не нужно. Для
события_2, чтобы ликвидировать
неопределённость, необходимо получить сообщение, содержащее 1 единицу информации,
а для события_3 в сообщении должно содержаться 2 единицы информации (Рис. 8.4.).
Т.е. численно информация равна энтропии: InfА = H(n).
В теории информации единица количества информации названа битом.
Событие
Событие_1
Событие_2
Событие_3
Количество единиц
информации о событии
InfC-1= log21= 0
InfC-2= log22= 1
InfC-3= log24= 2
Рис. 8.4.
За единицу количества информации, принято количество информации, которое
получает человек, когда какое-то событие завершится одним из двух равновероятных
результатов. Эта единица информации была названа «бит».
Бит (в теории информации): количество информации, которое получает человек
о конкретном результате завершения события, когда событие может завершиться одним
из двух равновероятных результатов.
Мы употребили понятие «равновероятные результаты». Что это значит?
Например, пусть имеется событие, которое может завершиться одним из двух
результатов. Если возникновение этих результатов равновероятно, то при завершении
этого события, например, 10000 раз, в 5000 случаев возникнет результат_1, а в 5000
случаев возникнет результат_2.
Если имеется событие, которое может завершиться одним из 4-х результатов, и эти
результаты равновероятны, то при завершении этого события 10000 раз, каждый из 4-х
результатов возникнет 2500 раз.
В общем виде, если в результате завершения события может возникнуть одно из n
равновероятных результатов, то вероятность результата: р=1/n.
Как должна выглядеть формула Хартли, если в ней использовать вероятность
появления результата?
Если все результаты равновероятны, то вероятность каждого результата р=1/n или
n=1/p. Подставим это выражение в формулу:
12
InfА = log21/p = -log2p
Какие выводы можно сделать из формулы Хартли?
1. Формула Хартли справедлива только для равновероятных результатов
возникновения события А.
2. Формула Хартли устанавливает способ определения количества информации о
том, каким конкретным результатом завершилось событие А. Т.к. все результаты
равновероятны, то для любого конкретного результата количество информации одно и то
же. Кубик имеет 6 граней. Наблюдателю сообщается, что при подбрасывании кубика
выпала грань №3. Этим сообщением наблюдатель получил количество информации
Inf(r3)=-log21/6 = 2,585. При следующем подбрасывании кубика наблюдателю сообщается,
что выпала грань №5. Этим сообщением наблюдатель получил такое же количество
информации Inf(r5)=-log21/6 = 2,585.
3. Т.к. все результаты равновероятны, то эта же формула устанавливает количество
информации о возможном конкретном результате в среднем, которую может получить
наблюдатель при получении некоторого количества сообщений применительно к
некоторому количеству возникновений события А.
Действительно, произошло событие А, и возник результат r1. Количество
информации, содержащейся в сообщении об этом результате Inf(r1) = log21/p = -log2p. Так
n раз происходило событие А. Получено n сообщений, и каждое сообщение содержало
количество информации о конкретном возникшем результате Inf(ri) = -log2p. Отсюда
среднее количество информации, приходящееся на одно сообщение: 1/n (-log2p-log2p…log2p…-log2p) = -log2p.
Ситуация с неравновероятными результатами в данном материале не
рассматривается.
При передаче информации по каналам связи главной проблемой является
пропускная способность канала связи и затраты энергии на передачу 1 знака алфавита.
При передаче сообщений по каналам связи по проводам распространяются не буквы
алфавита, а импульсы электрического тока. Высокий импульс (ему условно присвоили
знак «1») и низкий импульс (ему условно присвоили знак «0»). В этом случае можно
утверждать, что при передаче сообщения на любом языке, это сообщение передаётся, в
конечном счёте, на языке с алфавитом, имеющем в своём всего 2 элемента. Этот алфавит
и был взят в качестве базового для определения количества информации, которая
транспортируется по каналам связи (а в дальнейшем, хранится в памяти компьютеров и на
каких-то носителях информации).
Бит: количество информации в сообщении, состоящем из одного элемента
двоичного алфавита (подход к информации с точки зрения разнообразия).
На практике понятие «бит» используется в несколько ином смысле.
Бит: один элемент двоичного алфавита (алфавитный подход).
Универсальный способ измерения длины любого сообщения состоит в том, чтобы
измерение проводить в битах. Этот же подход правомерно применить при хранении
информации в электронных устройствах памяти.
Два этих подхода – теоретический и алфавитный, в конце концов, «сливаются». В
самом деле, чтобы снять неопределённость при угадывании одного из n (например, 32)
элементов алфавита, требуется log2n (log232=5) бит информации. А чтобы представить
любой элемент этого же алфавита с помощью элементов базового алфавита, необходимо
слово длиной log2n (log232=5) бит. На Рис. 8.8. представлена длина слов базового
алфавита для представления одного символа алфавита некоторых языков.
13
Тип
языка
Количество
элементов в
алфавите
Каi
Язык_1
256
Длина слова
базового
алфавита для
представления
одного элемента
алфавита языка
log2Кai
8
Язык_2
32
5
Язык_3
10
3,332
Язык_4
2
1
Графическое
представление слова
базового языка
Рис. 8.8.
9. Системы счисления
9.1. Основные определения
Известна поговорка: всё познаётся в сравнении. Чтобы сравнивать что-то между
собой, необходимо измерять количество этого «что-то». В процессе своего развития
человек сначала сравнивал количество видимых простым глазом объектов. Со временем
«объекты» видоизменялись, усложнялись. В настоящее время установлено «количество»
для таких понятий, как шум, яркость света, цвет, и можно сравнивать величину шума,
яркость света излучаемого различными источниками, можно точно подбирать краску под
цвет какого-то окрашенного объекта и т.д.
Счёт: процесс определения количества чего-либо.
Число: обозначение количества чего-либо.
В дальнейшем люди научились выполнять операции над числами. Чтобы
производить операции над числами, необходимо иметь систему представления чисел
(записи чисел).
Исторически, люди придумывали для каждого числа своё обозначение. В русском
языке: ноль, один, два…, десять и т.д. В английском языке: zero, one, two, … , ten and so
on. Вспомним, мы уже рассматривали таблицу соответствия слов для любых двух
естественных языков. В данном случае ситуация аналогичная.
Система счисления: язык, предназначенный для записи кодов чисел и для
выполнения операций над кодами числами.
Принимая во внимание, что эти языки предназначены для определённых целей, для
них введены специфические понятия, и системы счисления обладают определёнными
свойствами.
Цифра: элемент алфавита системы счисления.
Алфавит системы счисления: множество цифр, используемых при записи кодов
чисел в данной системе счисления.
Мощность алфавита: количество цифр в алфавите.
Цифра представляется одним знаком.
Код числа: запись числа с помощью цифр.
Из определения цифры и числа можно сделать вывод: цифра представляется одним
знаком, запись числа представляется в виде последовательности цифр.
Число в частном случае может состоять из одного знака (цифры). Иными словами,
цифра является числом.
14
Рис. 9.1.1.
В системах счисления существуют определённые правила:
 формирования слов (кодов чисел);
 выполнения операций (действий) над числами.
Для записи чисел существуют различные системы счисления.
Классы систем счисления:
 непозиционные системы счисления;
 позиционные системы счисления.
Соотношение между конкретным числом и кодами этого числа на разных языках (в
разных системах счисления) можно представить следующим образом (Рис. 9.1.1.).
Обратите внимание, часто вместо «код числа» говорят «число». Часто для
краткости совершаются такие подмены. Однако при этом сокращении необходимо всегда
помнить об истинном смысле употребляемого термина.
9.2. Непозиционные системы счисления
В непозиционной системе счисления величина, которую обозначает цифра (знак
алфавита), не зависит от положения этого знака в записи числа.
Самая распространённая непозиционная система счисления – римская.
Цифры
Эквивалент в
десятичной
системе
счисления
Римская непозиционная система счисления
I
V
X
L
C
D
1
5
10
50
100
500
M
1000
15
Рис. 9.2.1.
Обратите внимание на таблицу (Рис. 9.2.1.). Существуют различные системы
счисления, однако для современного человека (вне зависимости от его родного
естественного языка) «родной» системой счисления является десятичная. Человек может
оценить величину числа (большое число или не очень большое, или очень маленькое)
только в том случае, когда он видит код числа в десятичной системе счисления.
Десятичная система счисления – это для человека естественный язык представления
чисел. По этой причине, как правило, при представлении чисел в недесятичных системах
счисления одновременно отображается и их эквивалент в десятичной системе счисления.
Число MMVII = 1000 + 1000 + 5 + 1 + 1 = 2007
Число MVI = 1000 + 5 + 1 + = 1006
Величина каждой цифры не изменяется:
цифра М занимает (справа-налево) 3, 4 и 5 места;
цифра V занимает 2, 3 места;
цифра I занимает 1 и 2 места.
Существует правило при переводе числа из римской системы счисления в
десятичную систему счисления: если меньшая цифра расположена слева от большей, то
она вычитается из большей; если меньшая цифра расположена справа от большей, то она
суммируется с большей.
Число MCCXCIV = (1000 + 100 +100) + (-10 + 100) + (-1+5) = 1200+90+4 = 1294
Анализ вышеприведённого примера наверняка наведёт Вас, уважаемый читатель,
на мысль, что при переводе числа из римской системы счисления в десятичную одного
этого правила маловато. Это действительно так. При кажущейся простоте непозиционных
систем счисления, в них существуют свои правила записи чисел. В данном случае одно из
правил для римской системы счисления приведено лишь для иллюстрации.
В непозиционной системе счисления очень сложно выполнять операции над
числами.
9.3. Позиционные системы счисления
В позиционной системе счисления величина, которую обозначает знак алфавита
системы счисления в записи числа, зависит от положения этого знака в коде числа (от его
позиции в коде числа).
Различные числа в привычной для нас десятичной системе счисления: 362, 236,
623. Коды чисел различаются расположением цифр - позициями, которые цифры
занимают в кодах чисел.
В позиционных системах счисления некоторые общие понятия имеют собственные
имена: основание системы счисления, разряд кода числа.
Мощность алфавита позиционной системы счисления называется основанием
системы счисления.
Основание позиционной системы счисления: количество цифр, используемых
для записи кодов чисел (обозначим основание буквой p).
Разряд: позиция цифры в коде числа.
В таблице (Рис. 9.3.1.) представлены некоторые позиционные системы счисления.
Ещё раз отметим: для любого человека «родной» является десятичная система счисления,
поэтому основания систем счисления записываются в привычной для человека системе
счисления. Наименование системы счисления соответствует её основанию (десятичная,
двоичная и т.д.).
16
Название позиционной системы счисления
двоичная
троичная
восьмеричная
десятичная
шестнадцатеричная
Основание системы счисления
p= 2
p= 3
p= 8
p=10
p=16
Рис. 9.3.1.
Алфавит
позиционной
системы
счисления
есть
арифметическая
последовательность цифр от 0 до числа p-1 с разностью d = 1 (Рис. 9.3.2.).
Т. к. цифра алфавита системы счисления должна отображаться одним знаком, то
для систем счисления с основанием q>10 (десяти), в качестве некоторых цифр
используются буквы латинского алфавита.
Основание системы счисления определяет, во сколько раз различаются значения
двух одинаковых цифр, стоящих в соседних разрядах кода числа.
Рассмотрим пример в привычной для человека 10-ичной системе счисления.
Десятичное число 440. Мы знаем, что младшая цифра 4 представляет собой число 40
(4*10), а старшая цифра 4 – число 400 (4*100 = 400). Таким образом, значения
находящихся в соседних разрядах цифр, различаются в 10 раз.
Система
счисления
2-ичная
3-ичная
8-ичная
10-ичная
16-ичная
Алфавит
0,1
0,1,2
0, 1, 2, 3, 4, 5, 6, 7
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A (10), B (11), C (12), D (13), E (14), F (15)
Рис. 9.3.2.
Запишем в общем виде код числа А в позиционной системе счисления с
основанием р, имеющий n разрядов в целой части:
Ар = an-1 an-2...ai…a1 a0
Индекс в обозначении числа Ар указывает на название (основание) позиционной
системы счисления. Говорят: р – ичная система счисления.
Обычно при записи в общем виде номер младшего разряда целой
части числа
обозначается «0».
Каждый разряд имеет свой вес. В представленном в общем виде коде числа вес i-го
разряда целой части числа: Вiц = pi .
Код числа
Цифра разряда
Номер разряда
Вес разряда
Число, которое
представляет
каждая цифра
362 в 10-ичной системе счисления
3
6
2
2
1
0
102 = 100
101 = 10
100 = 1
300
60
2
17
Число,
записанное
кодом 362
Триста шестьдесят два
Рис. 9.3.3.
На рис. 9.3.3. представлен код числа с расшифровкой весов каждого разряда кода
числа.
Вес i – го разряда числа: результат возведения основания системы счисления в
степень, величина которой определяется положением этого разряда в коде числа.
По определению позиционной системы счисления, каждая цифра кода числа
представляет собой число, величина которого зависит от разряда, в котором находится эта
цифра.
Формы записи в позиционной системе счисления любого числа:
 код числа (свёрнутая форма записи): 24
 развёрнутая форма записи кода числа: 24 = 2*10+1 + 4*100
Общая формула развёрнутой формы записи кода числа A в системе счисления с
основанием р, имеющего в целой части n разрядов:
n 1
Ap   ai * p i
i 0
Представим развёрнутую форму записи кода числа в р-ичной системе счисления:
Ap = an-1*pn-1+ an-2*pn-2+… ai*pi+…+ a1*p1+ a0*p0
Это выражение есть сумма степеней основания системы счисления р с
коэффициентами, которыми являются цифры кода числа. Другое название этого
выражения: полином по степеням основания системы счисления (полином).
Рассматривая развёрнутую форму записи кода числа, можно сказать, что число
является суммой составляющих.
n 1
Ap   A(i )
i 0
Каждая составляющая есть произведение цифры числа на вес разряда.
A(i)=ai*pi;
A(i) >=1
В компьютерах все данные, какой бы характер они ни имели: числа, текст, рисунки,
звуки, представлены в двоичной системе счисления. В процессе разработки программ для
компьютеров, особенно программ управления функциональными элементами
компьютеров, специалистам-программистам приходится читать и анализировать
содержимое памяти компьютера. Коды чисел в 2-ичной системе счисления имеют
большое количество разрядов. Чтобы человеку легче было читать и понимать эти числа,
их преобразуют в 8-ичную или 16-ичную систему счисления. В этих системах счисления
коды чисел короче кодов в двоичной системе счисления. В 70-х годах в Институте
кибернетики в г. Киеве была создана вычислительная машина Мир в 3-ичной системе
счисления, но эта система не получила распространения.
18
Запись целых чисел в различных системах счисления
Основание
р
2
3
8
10
16
Свёрнутая
запись
целого
числа
10110
10110
10110
10110
10110
Развёрнутая запись кода числа в системе
счисления с основанием р
1* 24 + 0* 23 + 1* 22 + 1* 21 + 0* 20
1* 34 + 0* 33 + 1* 32 + 1* 31 + 0* 30
1* 84 + 0* 83 + 1* 82 + 1* 81 + 0* 80
1*104 + 0*103 + 1*102 + 1*101 + 0*100
1*164 + 0*163 + 1*162 + 1*161 + 0*160
Код числа в
системе с
основанием
р=10
22
93
4168
10110
65808
Рис. 9.3.5.
Рассматривая таблицу на Рис. 9.3.5., можно сделать следующие выводы:
 В таблице представлен один код для пяти систем счисления.
 Чтобы оценить величину записанных этим кодом чисел, необходимо все коды
представить в одной системе счисления, естественно, десятичной.
 По виду кода невозможно представить величину самого числа, т.к. человек привык
работать с числами, представленными кодами в десятичной системе счисления.
Основные свойства позиционной системы счисления:
- количество различных цифр равно основанию системы счисления;
- наибольшая цифра на единицу меньше основания системы счисления;
- значение расположенной в каком-то разряде цифры в коде числа вычисляется
умножением цифры на основание системы счисления в степени, соответствующей
разряду, в котором находится цифра (занимаемой цифрой позиции).
По какой причине в любой позиционной системе счисления появляются разряды?
С помощью только цифр системы счисления (когда код числа состоит только из одного
разряда - а0) можно получить максимальное число а0max =р-1: 0, 1, 2, …, р-1. Однако счёт
необходимо вести дальше. Вот и появляется более старший (второй) разряд – а1, и код
числа имеет уже 2 разряда – а1а0. Очевидно, что минимальное двухразрядное число с
кодом а1а0 должно быть на 1 больше максимальной цифры алфавита системы счисления,
т.е. (а1а0)min = р-1 + 1 = р. Итак, минимальное двухразрядное число в любой системе
счисления равно основанию этой системы счисления. Известно, что для десятичной
системы счисления младший разряд числа называется разрядом «единиц», следующий
разряд – разряд «десятков» и т.д. Такое название младший разряд получил, потому что
при счёте каких-либо объектов в младшем разряде учитываются объекты, количество
которых меньше основания системы счисления; и это количество называется
«единицами». Во втором разряде считаются десятки объектов: десять, двадцать, тридцать
и т.д. Этот разряд называется «разряд десятков».
Интересно, что название младшего разряда – «разряд единиц» справедливо для
любой системы счисления. А вот собственные имена других разрядов существуют только
для естественной для человека системы счисления. Разряд десятков – это разряд, в
котором считаются десятки, разряд сотен – это разряд, в котором считаются сотни. А,
например, в 8-ичной системе счисления разряд а1, в котором считаются восьмёрки – числа
81 не имеет собственного имени. Объяснение простое – эта система счисления
используется только профессионалами.
Ранее мы определили, что минимальное двухразрядное число (а1а0)min равно
основанию системы счисления р. А как представляется код этого числа? Запишем это
число в развёрнутой форме:
19
(а1а0)min = а1*р1+а0*р0=р
Из этого равенства видно, что а0=0 и а1=1. Итак, (а1а0)min=10. Обратите внимание,
код числа (а1а0)min - один и тот же для любой системы счисления. По своей величине эти
числа - разные, хотя и имеют один и тот же код. В десятичной системе счисления – это
число десять. В двоичной системе счисления – это число 2 и т.д. (Рис. 9.3.6.).
Значение чисел (а1а0)min в разных системах счисления
Тип системы счисления
2-ичная
3-ичная
8-ичная
16-ичная
Код числа
10
10
10
10
Значение числа в
10-ичной системе 1*21+0*20=2 1*31+0*30=3 1*81+0*80=8 1*161+0*160=16
счисления
Рис. 9.3.6.
Для сравнения рассмотрим значения чисел (а1а0)max в разных системах счисления
(Рис. 9.3.7.):
Значение чисел (а1а0)max в разных системах счисления
Тип системы счисления
2-ичная
3-ичная
8-ичная
16-ичная
Код числа
11
22
77
FF
Значение числа в
10-ичной системе 1*21+1*20=3 2*31+2*30=8 7*81+7*80=63 15*161+15*160=255
счисления
Рис. 9.3.7.
Анализ этих таблиц позволяет сделать вывод: всегда при записи кода числа для
определённости необходимо указывать систему счисления, в которой записан код числа:
34578, 345710.
9.4. Выполнение арифметических операций в позиционных системах счисления
Рассмотрим на примерах следующие
арифметические операции: сложение,
вычитание, умножение. Для каждой операции в первом примере будет рассматриваться
10-ичная система счисления.
Операция «сложение»
Пример 1. Сложить число 658738110 с числом 546171610 (Рис. 9.4.1.).
Номер
строки
таблицы
1
2
Номер разряда
Пояснения
Обозначение кода числа А
Обозначение кода числа B
7
6
5
4
3
2
1
0
a7 a6 a5 a4 a3 a2 a1 a0
b7 b6 b5 b4 b3 b2 b1 b0
20
3
4
5
6
7
8
9
10
11
Код числа А
Код числа B
Поразрядные суммы цифр
каждого слагаемого
Si =(ai+bi)
Результат уменьшения
поразрядных сумм Si>=p,
которые равны или больше
основания системы
[(ai+bi)-p]
Первичный перенос из
предыдущего разряда в
последующий
Поразрядные суммы цифр
с учётом первичного
переноса
Результат уменьшения
поразрядных сумм,
полученных с учётом
первичных переносов
Вторичный перенос из
предыдущего разряда в
последующий (при
добавлении первичного
переноса)
Результат операции
«сложение» ri
6
5
5
4
8
6
7
1
3
7
8
1
1
6
11
9
14
8
10
9
7
9
7
1
4
0
1
1
1
1
10
9
0
1
1
2
0
4
9
0
Рис. 9.4.1.
Операция «сложение» реализуется в несколько этапов.
1 этап. Определяются поразрядные суммы - суммируются цифры в каждом разряде:
Si = ai+bi (строка 5).
2 этап. В тех разрядах, в которых поразрядная сумма Si оказывается не цифрой, а
числом, т.е. Si=ai+bi >= p, цифра результата определяется вычитанием основания системы:
ri=ai+bi – p (строка 6). Одновременно возникшая 1 переноса Пi «переходит» в
последующий разряд i+1 (строка 7).
3 этап. Единицы переноса суммируются с поразрядными суммами Пi+Si+1 (строка
8).
4 этап. Этот этап аналогичен 2-му этапу. Если Пi+Si+1 >=p, то происходит
вычитание основания системы: Пi+Si+1– p (строка 9). Одновременно возникшая 1
переноса Пi+1 «переходит» в последующий разряд i+2 (строка 10).
Мы привыкли к 10-ичной системе счисления и выполняем в ней операции, «не
задумываясь». Удобство 10-ичной системы счисления состоит не только в том, что мы
работаем в ней с детства. Если разрядная сумма больше или равна 10 10, то в качестве
цифры результата мы используем младшую цифру разрядной суммы, не проводя
вычитание. Посмотрите на таблицу (Рис. 9.4.2.).
Цифра
первого
ai
4
9
7
5
7
8
8
9
9
21
слагаемого
Цифра второго bi
слагаемого
Первичная
Si=ai+ bi >=10
поразрядная
сумма
Цифра
результата
6
2
5
8
7
7
8
8
9
10
11
12
13
14
15
16
17
18
0
1
2
3
4
5
6
7
8
Рис. 9.4.2.
В первых двух строках значения цифр взяты для примера. Вместо, 7+5=12 можно
рассматривать 8+4=9+3=6+6=12. Подчёркнутые цифры подтверждают вышеприведённое
утверждение.
Операция «сложение» над кодами чисел в других системах счисления выполняется
аналогичным образом. Однако есть особенность. Рассматривая нижеприведённые
примеры, обратите внимание на эту особенность. В какой бы системе счисления (кроме
десятичной) мы ни проводили операцию «сложение», суммирование мы проводим в
десятичной системе счисления. Но сравнивать каждую поразрядную сумму мы должны с
конкретным основанием системы счисления. Мы не можем в качестве цифры результата
использовать младшую цифру суммы, а должны проводить вычитание, используя
представление этого основания в десятичной системе счисления.
Чтобы выполнить любую операцию, необходимо представить процесс её
выполнения в виде последовательности действий. Последовательность действий запишем
на формальном языке PDL (Program Design Language) – языке проектирования программ.
В дальнейшем мы будем более подробно рассматривать этот язык. Однако он достаточно
простой, и запись действий на этом языке должна быть понятной, тем более, что к
каждому оператору языка (действию) даётся комментарий.
Необходимо провести операцию «сложение» над двумя числами: A=anan-1an-2…
a2a1a0 и B= bnbn-1bn-2… b2b1b0 в системе счисления с основанием р и получить сумму
С= cn+1cncn-1cn-2… c2c1c0 (Рис. 9.4.3.).
Получите результаты представленных ниже примеров на операцию «сложение»,
читая и выполняя каждое действие в указанной таблице.
Номер
Текст оператора
оператора
1
Ввести значение n
2
П=0
3
For i=0 to n
4
5
Si=ai+bi+П;
If Si>=p Then
Комментарий
Задать значение количества разрядов, которыми
представлены 2 слагаемых.
Установить начальное значение переноса из разряда
в разряд
Оператор цикла, который устанавливает количество
повторений тех действий (операторов), которые
записаны между этим оператором и оператором
Next. В данном случае переменная i обозначает
текущее значение номера разряда от 0 до n (смотри
коды чисел)
Определение разрядной суммы
Условный оператор, когда выполняются различные
действия в зависимости от результата проверки
22
ci=Si-p; П=1;
If i=n Then
ci+1= 1
Endif
6
else
7
ci=Si;
Endif
8
Next
9
Print C
условия. Если разрядная сумма равна или больше р,
то
определяется разрядная сумма и переменной
«Перенос» присваивается значение «1».
Если сумма цифр в старшем разряде равна или
больше р,
то должна появиться 1 в следующем разряде
Иначе (разрядная сумма меньше р), разрядная сумма
определяется иным способом, и переменной
«Перенос» присваивается значение «0».
П=0;
Оператор конца условного оператора, который
показывает, что все действия условного оператора
записаны.
Оператор конца цикла, который показывает, что все
повторяющиеся действия оператора цикла For
записаны.
Печатать значение суммы двух чисел
Рис. 9.4.3.
Пример 2. Сложить 2 числа 262,510 и 38,7510 в 10-ичной системе счисления (Рис.
9.4.4.).
Записи типа «5+7=12=10+2» в схеме примера имеют следующий смысл. Если при
суммировании двух цифр получено число Si >=p, то Si= p+ri и П=1, где r –цифра
разрядного результата.
Рис. 9.4.4.
Пример 3. Сложить 2 числа 10000110,12 и 100110,112 в 2-ичной системе счисления
(Рис. 9.4.5.).
23
Рис. 9.4.5.
Пример 4. Сложить 2 числа 406,48 и 46,68 в 8-ичной системе счисления (Рис.
9.4.6.).
Рис. 9.4.6.
Пример 5 . Сложить 2 числа 106,816 и 26,1216 в 16-ичной системе счисления (Рис.
9.4.7.).
Рис. 9.4.7.
24
9.5. Преобразование кодов чисел из одной системы счисления в другую
Обычно говорят и пишут «перевод чисел из одной системы в другую», например,
«перевод чисел из двоичной системы счисления в десятичную». Практически во всех
предметных областях нередки случаи, когда вместо длинной, но точной
формулировки какого-то утверждения применяется более короткая формулировка,
и это допустимо. Однако при этом нельзя забывать об истинном смысле
утверждения. Смысл рассматриваемой фразы состоит в том, что имеется в виду одно
число, но исходными данными в задаче является код этого числа в двоичной системе
счисления, а результатом, который необходимо получить путём обработки исходных
данных, является другой код этого же числа в другой - десятичной системе счисления.
В общем виде задача формулируется следующим образом.
Имеется код числа Аp= ak-1ak-2ak-3…a2a1a0,a-1a-2…a-m в первичной системе
счисления с основанием p. Необходимо преобразовать код этого числа в новый код
Аq = bn-1bn-2bn-3…b2 b1b0,b-1b-2…b-m во вторичной системе счисления с основанием q.
9.5.1. Преобразование целой части числа
Имеются 4 системы счисления с различными основаниями: 10, 2, 8, 16. В таблице
на Рис. 9.5.1.1. с помощью знака ↑ «стрелка» представлены варианты преобразований.
Например, знак ↑, находящийся в ячейке таблицы на пересечении строки,
соответствующей основанию 2, и столбца, соответствующего основанию 10, указывает на
преобразование кодов чисел из 2-ичной системы счисления в 10-ичную. Записи в каждой
ячейке указывают на способ преобразования, которые мы рассмотрим:
ст – используется представление числа в виде степенного ряда (полинома);
Горнер – используется метод Горнера;
Основание
10
2
8
16
10
×
↑ (ст, Горнер)
↑ (ст, Горнер)
↑ (ст, Горнер)
2
↑ (дел)
×
↑ (цифр)
↑ (цифр)
8
↑ (дел)
↑ (гр)
×
↑ (комб)
16
↑ (дел)
↑ (гр)
↑ (комб)
×
Рис. 9.5.1.1.
дел – используется операция «деление»;
гр – используется группировка цифр кода;
цифр – используется преобразование отдельно каждой цифры кода;
комб – используется комбинация из двух методов.
В данной таблице можно выделить 3 группы пар кодов:
1 группа пар кодов – один из кодов представляет собой запись числа в 10-ичной
системе счисления;
2 группа пар кодов - один из кодов представляет собой запись числа в 2-ичной
системе счисления;
3 группа пар кодов – 2 кода представляют собой записи числа в 8 –ичной и 16ичной системах счисления.
Правила преобразования основываются на трёх разных видах записи полинома развёрнутой формы записи любого числа F.
1 вид (исходная формула): F = fn-1*qn-1+ fn-2*qn-2+…+ f2*q2 +f1*q1+ f0*q0
2 вид:
F = (fn-1*qn-1+ fn-2*qn-2+… + f2*q2 +f1*q1) + f0
25
3 вид: F
= (…(( fn-1*q+fn-2)*q+fn-3)*q)+fn-4)*q)…+ f2)*q+f1)*q+ f0
Первый вид (исходная формула) является универсальным, т.е. этот вид может
использоваться для любых кодов в паре.
Два остальных вида устанавливают
определённые процедуры преобразования кодов. В общем случае можно утверждать, что
выбор того или иного вида записи и способа преобразования кодов определяется
удобством выполнения преобразования для человека.
Рассмотрим решение задачи с применением второго вида развёрнутой формы
записи числа. Цифры первичного кода известны: Аp= ak-1ak-2ak-3…a2a1a0. Необходимо
найти цифры bi вторичного кода. С учётом решения нашей задачи вместо просто записи
числа необходимо рассматривать следующее равенство:
ak-1ak-2ak-3…a2a1a0 = bn-1*qn-1+ bn-2*qn-2+…+ b2*q2 +b1*q1+ b0*q0 =
= (bn-1*qn-1+ bn-2*qn-2+… + b2*q2 +b1*q1) + b0
Это равенство показывает, что если проводить операцию деления числа в виде
кода Аp= ak-1ak-2ak-3…a2a1a0 в первичной системе счисления на основание q вторичной
системы счисления, то при каждой операции деления будет получаться остаток bi, равный
цифре кода числа во вторичной системе счисления.
Первая операция деления (результат операции – первое частное с остатком b0):
ak-1ak-2ak-3…a2a1a0/q = (bn-1*qn-2+bn-2*qn-3+… +b2*q1+ b1*q0) + b0 /q =
= (bn-1*qn-2+ bn-2*qn-3+… +b2*q1+ b1) + b0 /q
Во второй операции деления (делимым является целая часть первого частного)
результатом операции является второе частное с остатком a1:
[ak-1ak-2ak-3…a2a1a0 / q] / q = (bn-1*qn-3+ bn-2*qn-4+… +b2) + b1 /q
Таким образом, выполнив последовательно операцию деления до момента, когда
целая часть текущего частного окажется меньше основания вторичной системы счисления
q, мы получим в виде остатков цифры кода числа во вторичной системе счисления q.
Отметим ещё раз, что деление проводится в первичной системе счисления p. Учитывая
это условие, очевидно, что этот способ удобно использовать при преобразовании кода из
10-ичной системы счисления в любую другую. В таблице этот способ указывается с
помощью записи «(дел)».
Проверим реализацию этого правила на примерах.
Пример 1. Преобразовать код числа 15710 из 10-ичной системы в 2-ичную (Рис.
9.5.1.2.).
157

156
1

2
78
78
0
2

39
38
1
2

19
18
1

2
9
8
1

2
4
4
0

2
2
2
0
2
1
26
Рис. 9.5.1.2.
Стрелка на этом и последующих рисунках указывает направление «от младшего
разряда к старшему».
15710 = 100111012
Пример 2. Преобразовать код числа 15310 из 10-ичной системы в 8-ичную (Рис.
9.5.1.3.).

153
152
1
8
19
16
3

8
2
Рис. 9.5.1.3.
Результат: 15310 = 2318.
Пример 3. Преобразовать код числа 772310 из 10-ичной системы в 16-ичную (Рис.
9.5.1.4.).



7723
64
132
128
43

16
482
48
16

2
30
16
16
14
1
32
11
Рис. 9.5.1.4.
Результат: 772310 = 1E2B16
Теперь рассмотрим обратное преобразование: в 10-ичную систему. Способ
преобразования делением можно использовать и в данном случае, когда вторичной
системой является 10-ичная. Однако в данном случае его сложно использовать, т.к.
деление необходимо проводить в 2-ичной или 8-ичной или 16-ичной системе. Вспомним,
деление необходимо проводить в той системе счисления, в которой записан исходный код
числа.
В данном случае целесообразнее использовать третий вид развёрнутой формы записи
числа. Анализируя третий вид развёрнутой формы, можно увидеть, что преобразование
реализуется циклическим выполнением пары действий. Первый цикл: цифра старшего
разряда кода умножается на основание исходной системы счисления и суммируется с
цифрой соседнего более младшего разряда. Второй цикл: полученное в предыдущем
цикле число умножается на основание исходной системы счисления и суммируется с
27
цифрой соседнего более младшего разряда. И т.д. Операции «умножение» и «сложение»
выполняются, естественно, в привычной 10-ичной системе, и результатом является число
в 10-ичной системе, что и необходимо. При этих преобразованиях применяется
специальная форма записи. Этот способ преобразования назван «метод Горнера» по
имени автора.
Пример 4. Преобразовать код числа 100111012 из 2-ичной системы в 10-ичную (Рис.
9.5.1.5.).
Исходный
код числа
1 (a7)
0
0
1
1
1
0
1
(a6)
(a5)
(a4)
(a3)
(a2)
(a1)
(a0)
Промежуточные
Пояснение
результаты
1
Записывается цифра
старшего разряда
2
U1 = a7*p+a6 = 1*2+0 =2
4
U2 = U1*p+a5 = 2*2+0=4
9
U3 = U2*p+a4 = 4*2+1=9
19
U4 = U3*p+a3 = 9*2+1=19
39
U5 = U4*p+a2 = 19*2+1=39
78
U6 = U5*p+a1 = 39*2+0=78
157
U7 = U6*p+a0 = 78*2+1=157
Рис. 9.5.1.6.
Пример 5. Преобразовать код числа 47358 из 8-ичной системы в 10-ичную (Рис.
9.5.1.7.).
Исходный
код числа
4 (a3)
7 (a2)
3 (a1)
5 (a0)
Промежуточные
Пояснение
результаты
4
Записывается цифра
старшего разряда
39
U1 = a3*p+a2 = 4*8+7 =39
315
U2 = U1*p+a1 = 39*8+3=315
2525
U3 =U2*p+a0 =315*8+5=2525
Рис. 9.5.1.7.
Пример 6. Преобразовать код числа A9F516 из 16-ичной системы в 10-ичную (Рис.
9.5.1.8.).
Исходный
код числа
A (a3)
9 (a2)
F (a1)
5 (a0)
Промежуточные
Пояснение
результаты
A (10)
Записывается цифра старшего
разряда
169
U1 = a3*p+a2 = 10*16+9 =169
2719
U2 = U1*p+a1 = 169*16+15 = 2719
43509
U3 = U2*p+a0 = 2719*16+5=43509
Рис. 9.5.1.8.
При преобразовании в 10-ю систему счисления можно использовать исходную
развёрнутую запись кода числа виде степенного ряда (полинома):
28
ak-1ak-2ak-3…a2a1a0 = ak-1*pk-1+ ak-2*pk-2+…+ a2*p2 +a1*p1+ a0*p0
и проводить вычисления в 10-ичной системе счисления.
Пример 7. Преобразовать код числа 100111012 из 2-ичной системы в 10-ичную.
100111012 = 1*27+1*24+1*23+1*22+1 = 128+16+8+4+1 = 157
Пример 8. Преобразовать код числа 47358 из 8-ичной системы в 10-ичную.
47358 = 4*83+7*82+3*8+5 = 4*512+7*64+24+5 = 2048+448+24+5 = 2525
Пример 9. Преобразовать код числа A9F516 из 16-ичной системы в 10-ичную.
A9F516 = 10*163+9*162+15*16+5 = 10*4096+9*256+240+5 = 43509
Теперь рассмотрим преобразование для второй группы пар кодов: 8→2, 16→2,
2→8, 2→16.
Особенность этих трёх систем состоит в том, что системы с основаниями 8=23 и
4
16=2 являются кратными для 2-ичной системы счисления. На этом основаны способы
преобразования. Пусть исходный код числа А представлен в 8-ичной системе счисления:
А8 = ak-1*8k-1+ ak-2*8k-2+…+ a2*82 +a1*81+ a0*80
Каждая цифра ai <=7. Это значит, что каждую цифру первичного кода можно
( 2 ) (1) ( 0 )
представить
в
двоичном
коде
или
i
i
i
( 2)
2
(1)
( 0)
i
i
i
i .
Для простоты рассмотрим в 8-ичной системе трёхразрядное число A8=a2a1a0.
b b b
a b
*2  b *2  b
( 2 ) 2 (1)
( 0)
( 0)
( 0)
32
2 (1)
31
2 (1)
A  ( b2 * 2  b2 * 2  b2 ) * ( 2 )  ( b * 2  b1 * 2  b1 ) * ( 2 )  ( b * 2  b0 * 2  b0 ) 
1
0
( 2 ) 2 (1)
( 0) 6
( 0) 3
( 0)
2 (1)
2 (1)
 ( b2 * 2  b2 * 2  b2 ) * 2  ( b * 2  b1 * 2  b1 ) * 2  ( b * 2  b0 * 2  b0 )
1
0
В этом выражении все цифры записаны в 2-ичной системе счисления: bi<=1.
Приведя подобные члены, можно получить следующее выражение:
A2= b8*28+ b7*27+b6*26+ b5*25+ b4*24 +b3*23+ b2*22 +b1*21+ b0
Обратите внимание на следующее обстоятельство: цифра в старшем разряде
первичного кода может быть меньше 4. Это значит, что в двоичном коде она
представляется только двумя разрядами. Это очень важное обстоятельство, определяющее
преобразование 2→8, 2→16.
Правило преобразования кода числа из 8-ичной системы в 2- ичную: каждую
цифру 8-ичного кода представить кодом в двоичной системе счисления.
29
Правило преобразования кода числа из 16-ичной системы в 2- ичную: каждую
цифру 16-ичного кода представить кодом в двоичной системе счисления в виде 4
разрядов.
Пример 10. Преобразовать код числа 17358 из 8-ичной системы в 2-ичную.
Каждую цифру восьмеричного кода записываем в двоичном коде:
17358=001 111 011 1012 = 11110111012
Для удобства чтения первая запись двоичного кода выполнена со знаками
«пробел». В последней записи удалены незначащие цифры «0» в двух старших разрядах.
Пример 11. Преобразовать код числа 69F516 из 16-ичной системы в 2-ичную.
69F516= 0110 1001 1111 01012 =1101001111101012
Правило преобразования кода числа из 2-ичной системы в 8- ичную: начиная с
младшего разряда, сгруппировать цифры 2-ичного кода по три (в триады), затем каждую
тройку цифр (триаду) 2-ичного кода представить кодом цифры в 8-ичной системе
счисления.
Правило преобразования кода числа из 2-ичной системы в 16- ичную: начиная
с младшего разряда, сгруппировать цифры 2-ичного кода по четыре (в тетрады), затем
каждую четвёрку цифр (тетраду) 2-ичного кода представить кодом цифры в 16-ичной
системе счисления.
Пример 12. Преобразовать код числа 11110111012 из 2-ичной системы в 8-ичную.
Код числа разбиваем на триады, начиная с младшего разряда.
1001110111012 =1 111 011 1012 = 17358
Пример 13. Преобразовать код числа 1101001111101012 из 2-ичной системы в 16ичную.
Код числа разбиваем на четвёрки цифр, начиная с младшего разряда.
1101001111101012 = 110 1001 1111 01012 = 69F516
Рассмотрим преобразования для последней группы пар кодов: 8→16, 16→8.
Наиболее удобный для человека способ – это 2-этапная процедура: на первом этапе
провести преобразование в 2-ичную систему, а затем в необходимую вторичную систему.
Пример 14. Преобразовать код числа 17358 из 8-ичной системы в 16-ичную.
17352=1 111 011 1012 = 11110111012 = 11 1101 11012 = 3DD16
Пример 15. Преобразовать код числа 69F516 из 16-ичной системы в 8-ичную.
69F516= 110 1001 1111 01012 =1101001111101012 = 110 100 111 110 1012 = 647658
30
Download