- •Учебные материалы
- •1 Лекция: Введение. История, предмет, структура информатики
- •2 Лекция: Информация, ее представление и измерение
- •3 Лекция: Кодирование и шифрование информации
- •4 Лекция: Системы счисления и действия в них:
- •5 Лекция: Высказывания и предикаты
- •6 Лекция: Логические вентили, схемы, структуры
- •7 Лекция: Базовые алгоритмические структуры
- •8 Лекция: Данные, их типы, структуры и обработка
- •9 Лекция: Методы разработки и анализа алгоритмов
- •10 Лекция: Исполнители алгоритмов - человек и автомат
- •11 Лекция: Программное и техническое обеспечение
- •12. Лекция: Формальные языки и грамматики
- •13 Лекция: Введение в моделирование объектов, процессов и явлений
- •14 Лекция: Введение в информационные технологии
- •15 Лекция: Информатизация общества, информационное общество. Интернет
- •16 Лекция: Основы информационных сетей
- •1 Основы сетей и сетевых технологий
- •1.1 Два корня сетей передачи данных
- •1.2 Появление первых вычислительных машин
- •1.3 Программные мониторы — первые операционные системы
- •1.4 Мультипрограммирование
- •5 Многотерминальные системы — прообраз сети
- •1.6 Первые сети — глобальные
- •1.7 Наследие телефонных сетей
- •2 Эволюция вычислительных сетей: от первых локальных сетей до современных сетевых технологий
- •2.1 Мини-компьютеры — предвестники локальных сетей
- •2.2 Появление стандартных технологий локальных сетей
- •2.3 Роль персональных компьютеров в эволюции компьютерных сетей
- •2.4 Новые возможности пользователей локальных сетей
- •2.5 Эволюция сетевых операционных систем
- •3 Основные задачи построения сетей
- •3.1 Связь компьютера с периферийными устройствами
- •3.2 Связь двух компьютеров
- •3.3 Клиент, редиректор и сервер
- •3.4 Задача физической передачи данных по линиям связи
- •4 Проблемы связи нескольких компьютеров
- •4.1 Топология физических связей
- •4.2 Адресация узлов сети
- •17 Лекция: Основы систем управления баз данных
- •1 Общие сведения о проектировании информационных систем и баз данных
- •1.1 Некоторые термины и определения, используемые при работе с базами данных
- •1.2 Принципы проектирования информационных систем
- •2. Принципы организации баз данных
- •2.1 Классификация баз данных
- •2.2 Ранние подходы к организации баз данных
- •2.2.1 Иерархические базы данных
- •2.2.2 Сетевые базы данных
- •2.3 Современные базы данных
- •2.3.1 Реляционные системы
- •2.3.2 12 Правил Кодда
- •2.3.3 Соблюдение условий ссылочной целостности в реляционной базе данных
- •2.3.4 Основные стратегии поддержания ссылочной целостности
- •2.3.5 Дополнительные стратегии поддержания ссылочной целостности
- •2.4 Постреляционные базы данных
- •2.4.1 Серверы баз данных
- •2.4.2 Распределенные базы данных
- •18 Лекция: Информационные ресурсы общества Виды и классификация информационных ресурсов
- •Информационные ресурсы как форма представления знаний
- •Знание как национальное достояние
- •Классификация информационных ресурсов
- •Количественные характеристики некоторых видов информационных ресурсов России
- •Электронизация информационных ресурсов общества как актуальная проблема
- •2.Информационная инфраструктура общества Понятие и основные компоненты информационной инфраструктуры общества
- •Центры-генераторы информационных ресурсов общества
- •Основные тенденции изменения информационной инфраструктуры общества
- •3.Информационные продукты и услуги Определение основных понятий
4 Лекция: Системы счисления и действия в них:
Рассматриваются основные понятия числовых систем, правила их построения, выполнение действий в них.
Алфавит Х из р символов и правила записи (изображения) и обработки чисел с помощью символов этого алфавита называются системой счисления (нумерацией) с основанием р. Число х в системе с основанием р обозначается как (х)р или хр.
Любая система счисления – это система кодирования числовых величин (количеств), позволяющая выполнять операции кодирования и декодирования, то есть по любой количественной величине однозначно находить его кодовое представление и по любой кодовой записи – восстанавливать соответствующую ей числовую величину.
Все системы счисления строятся по общему принципу: определяется величина р – основание системы, а любое число х записывается в виде комбинации степеней веса р от 0-й до n-й степени следующим образом:
.
Наиболее используемые в информатике системы счисления, кроме, естественно, десятичной, – это:
1) двоичная, над алфавитом Х = {0,1};
2) восьмеричная, над Х = {0,1,2,3,4,5,6,7};
3) шестнадцатеричная, над Х = {0,1,2,3,4,5,6,7,8,9,А,В,С,D,Е,F}, где символы А, В, С, D, Е, F имеют, соответственно, десятичные веса 10, 11, 12, 13, 14, 15.
Пример. 11012 = 1 × 23 + 1 × 22 + 0 × 21 + 1 × 20 = 8 + 4 + 1 = 1310 ,
1578 = 1 × 82 + 5 × 81 + 7 × 80 = 64 + 40 + 7 = 11110 ,
A6F16 = 10 × 256 + 6 × 16 + 15 × 1 = 267110 .
В большинстве систем счисления вес цифры (или символа алфавита) зависит от ее места в записи числа или слова. Такая система счисления называется позиционной; в противном случае система называется непозиционной.
Пример. Непозиционная система – древняя римская система записи чисел с алфавитом вида Х={I (1), V (5), Х (10), L (50), С (100), D (500), М (1000)}, где в скобках указаны веса символов (не зависящие от позиции символа). Примеры римских чисел (в скобках – обычные десятичные эквиваленты): III (3), IV (4), V (5), VI (6), IX (9), XI (11), DCL (650). Запись числа в этой системе получается двусторонней конкатенацией, причем правая конкатенация ассоциируется с добавлением, а левая конкатенация – с убавлением (например, IV и VI). Поразрядное же выполнение арифметических операций не имеет места (например, XIV + IV ≠XVIII ).
Для изображения десятичных дробей используется подобная формула разложения по степеням основания.
Пример. 110,0012 = 1×22 + 1×21 + 0×20 + 0×2-1 + 0×2-2 + 1×2-3 = 6,12510;
A,B16 = A×160 + B×16-1 = 10×1 + 11×0,0625 = 10,687510 .
Процедура перевода десятичных чисел в р-ную систему счисления:
перевести отдельно целую часть числа х, для чего последовательно делить сперва целую часть [х]10 , а затем все частные (получаемые при делении) на р до тех пор, пока не получим в очередном частном число меньшее р; изображение [х]p получается последовательным приписыванием к последнему частному остатков от деления – от последнего до первого;
перевести отдельно дробную часть (мантиссу) числа, то есть {x}10 , для чего последовательно умножать сперва исходную мантиссу, а затем мантиссы получаемых чисел на р до тех пор, пока не получим мантиссу, равную нулю, или нужное количество цифр в {х}p; изображение {х}p получается приписыванием к целой части первого произведения второй такой же цифры и т.д., до последней цифры целой части;
результат будет иметь вид (х)р = [х]p,{х}p .
Пример. Найти: 12,810 = ?2 . Решение:
Переводим целую часть: 1210=11002;
Переводим дробную часть:
0,8×2 = 1,6; 0,6×2 = 1,2; 0,2×2 = 0,4; 0,4×2 = 0,8; 0,810 = 0,11001100...2;
результат перевода:12,810 = 1100,11001100...2 .
Пример. Найдем 29,2510 = ?8 . Решение имеет вид:
2910 = 358;
0,2510 = 0,28;
29,2510 = 35,28.
Пример. Найдем 79,2610 = ?16 . Решение:
7910 = 4F16 ;
0,2610 = 0,4016 ;
79,2610 = 4F,416 .
При переводе дробной части мы ограничились нахождением двух значащих цифр после запятой, ибо перевод точно сделать невозможно.
Для перевода из 2-ной в 8-ную и наоборот, из 2-ной в 16-ную и наоборот, из 8-ной в 16-ную и обратно, используется таблица следующего вида:
ОСНОВАНИЕ СИСТЕМЫ | |||
10 |
2 |
8 |
16 |
0 |
0 |
000 |
0000 |
1 |
1 |
001 |
0001 |
2 |
— |
010 |
0010 |
3 |
— |
011 |
0011 |
4 |
— |
100 |
0100 |
5 |
— |
101 |
0101 |
6 |
— |
110 |
0110 |
7 |
— |
111 |
0111 |
8 |
— |
— |
1000 |
9 |
— |
— |
1001 |
10 |
— |
— |
1010 |
11 |
— |
— |
1011 |
12 |
— |
— |
1100 |
13 |
— |
— |
1101 |
14 |
— |
— |
1110 |
15 |
— |
— |
1111 |
При переводе в 8-ную систему или из нее необходимо группировать в тройки биты, а при переводе в 16-ную или из нее – группировать их в четверки битов. Можно добавлять, если нужно, незначащие нули (слева от целой части и справа от мантиссы) или отбрасывать их.
Пример. Рассмотрим переводы в смешанных системах.
Из 2-ной системы в 8-ную (двоично-восьмеричное изображение):
101,101112=
101,
101
110
58
58
68
=5,568
Из 8-ной системы в 2-ную (восьмерично-двоичное изображение):
6,248=
6,
2
4
1102
0102
1002
=110,01012
Из 2-ной системы в 16-ную (двоично-шестнадцатеричное изображение):
101,101112=
0101,
1011
1000
516
11(B)16
816
=5,B816
Из 16-ной системы в 2-ную (шестнадцатерично-двоичное изображение):
1A,F316= |
1 |
A, |
F |
3 |
|
|
00012 |
10102 |
11112 |
00113 |
=11010,111100112 |
Арифметические операции в двоичной системе осуществляются согласно нижеприведенной таблице:
x |
y |
x+y |
x–y |
x×y |
x/y |
0 |
0 |
0 |
0 |
0 |
– |
0 |
1 |
1 |
1* |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
– |
1 |
1 |
10 |
0 |
1 |
1 |
*При вычитании из 0 происходит заем единицы их старшего разряда, т.е. 0–1=10–1=1.
Обратным кодом числа в системе с основанием р называется число в этой системе, получаемое заменой цифры(символа) в каждом разряде числа на его дополнение до максимальной цифры в системе (т.е. до р–1).
Дополнительный код получается путем добавления к младшему разряду обратного кода единицы.
Пример.
Для двоичного числа 10011 обратный код 01100, дополнительный 01101;
Для восьмеричного числа 457 обратный код 320, дополнительный – 321;
Для шестнадцатеричного числа А9 обратный код 56, дополнительный – 57.
Использование дополнительного кода позволяет свести операцию вычитания к операции сложения. Алгоритм вычитания с помощью дополнительного кода:
найти дополнительный код вычитаемого такой же разрядности, как и уменьшаемое,
сложить этот код с уменьшаемым.
Результатом вычитания будет полученная сумма без учета старшего разряда (отбрасывается).
Пример. Выполним вычитание напрямую и через сложение (через дополнительный код):
1101102 1101102
-101012 + 10112 дополнительный код
1000012 11000012 сумма
отбрасываемая единица
Целые числа в математике и их аналоги в n-разрядных арифметиках тождественны (по количеству) в рамках их представления с этой разрядностью. При этом можно отметить основные отличия представления чисел в поле памяти человека и в поле памяти n-разрядной арифметики:
Бесконечное и счетное множество целых чисел представляется отрезком [–N; +N], где N – максимальное число, представимое в этой арифметике (многоточие – общее число единиц, равное n): N = (111…1)2;
Бесконечное и несчетное множество действительных чисел , располагающееся на числовой оси равномерно и плотно, представляется вn-разрядной арифметике множеством с неравномерной плотностью (сгущение у нуля и сжатость со стороны меньших чисел);
Нуль во множестве действительных чисел в любой своей окрестности имеет множество чисел, а нуль в n-разрядной арифметике представлен изолированно.
С точки зрения обычной арифметики, например, в интервале (–1; 1) имеется бесконечное множество "плотно" расположенных точек, причем в любой окрестности каждой такой точки имеется хотя бы одна точка из этого множества. Такую арифметику называют часто регулярной арифметикой. Машинная же арифметика имеет следующие особенности. Она нерегулярна – точки интервала сгущаются около нуля; кроме того, в этом интервале точка х "изолирована" – если взять любую ее окрестность (х–а; х+а), где а – число, которое не превосходит машинного нуля (наименьшего представимого в машине числа), то в этом интервале нет других точек (отличных от х). Говоря языком теории вероятности, плотности распределения чисел в регулярной и нерегулярной арифметике – различны, как, впрочем, плотности распределения целых и вещественных чисел в одной и той же арифметике.
Множество вещественных чисел в машинной арифметике представляется как подмножество (определяемое разрядностью арифметики) множества рациональных чисел. Есть и другие особенности этих множеств (связанные, например, с выполнением операций), но указанные выше особенности – основные.
Различия в представлении чисел в обычной и в машинной (n-разрядной) арифметике ограничивают как "математические" возможности компьютера, так и "компьютерные" возможности математики, использование математических методов, алгоритмов в компьютерах.
Нужно всегда иметь в виду, что точность в теоретической математике – понятие абстрактное и в практической математике может возникать иллюзия точности там, где ее на самом деле нет, – если нет корректной договоренности о пределах возможных значений неизбежных погрешностей в рамках рассматриваемых вычислительных ресурсов, например, трудоемкости и времени, а также не оговорена стратегия управления этой погрешностью.
Так как диапазон n-разрядных чисел системы счисления с основанием p находится в пределах , то для представления дробных чисел этот диапазон еще снижается, поскольку часть разрядов необходимо отвести под изображение мантиссы. Таким образом, имеются так называемые "зоны нечувствительности" форм представления чисел вn-разрядных арифметиках.
В 1937 году Конрадом Цузе для увеличения диапазона чисел, представимых в арифметике двоичных чисел, а также для повышения точности этого представления чисел было предложено представление чисел в плавающей, нормализованной форме – число x представляется в виде: , гдеm – мантисса числа, k – целый порядок числа, .
Пусть даны два числа: и(k > l). Тогда можно проверить, что результаты выполнения операций будут равны:
Если из n разрядов, отводимых под изображение чисел, m двоичных разрядов отвести под мантиссу, k – под порядок, один разряд – под знак числа и один разряд – под знак порядка (например, 0 – плюс, 1 – минус), то диапазон представимых в форме с плавающей запятой чисел резко увеличивается – m + k + 2 = n (многоточие соответствует k единицам):
.
Числа, меньшие нижней границы положительных чисел и большие верхней границы отрицательных чисел, считаются равными нулю, не различаются между собой. Числа, большие верхней границы положительных чисел, полагаются равными положительной бесконечности (меньшие нижней границы отрицательных – отрицательной бесконечности). Сравнение двух разных по величине чисел в арифметике с ограниченной разрядностью может, поэтому, приводить к неверному результату, как и сравнение двух равных в таких системах чисел с точки зрения математической.
Такое представление очень удобно для хранения в ЭВМ, так как на самом деле необходимо хранить не само число, а его знак, мантиссу, порядок и знак порядка, и все операции с числами сводятся к операциям с этими объектами. Операции же с этими объектами просты: сравнение знаков, увеличение, уменьшение порядка, сложение мантисс, нормализация, то есть в конечном итоге сводятся к достаточно просто реализуемым операциям сдвига, выравнивания, сравнения разрядов.
Пример. Вычислить наибольшее и наименьшее 5-разрядное целое число в системе счисления с основанием 3. Наибольшее целое n-разрядное число, которое возможно записать в системе счисления с основанием р, равно:
.
Наименьшее целое n-разрядное число в этой системе равно
Таким образом, в системе счисления с основанием 3 и числом разрядов 5 представим диапазон следующих чисел:
.
Формулам можно придать более компактный вид. Например, для двоичной системы
,
а в восьмеричной системе счисления эти числа
.
К "неудобствам" этой формы представления чисел можно отнести возможность возникновения следующих "особо опасных" ситуаций:
если число достаточно мало, например, а = 0.12Е+00, то оно может быть представлено любым числом из наименьшего интервала включающего а, в частности числом 0.120000001 или 0.199999999 и в этом случае сравнивать на равенство "в лоб" нельзя (вещественные числа в форме с плавающей запятой опасно сравнивать на совпадение);
порядок выполнения операций может влиять на результат, например, в 4-разрядной арифметике с фиксированной запятой 20.0000+ 0.0001 = 20.0001, но при этом 0.2000Е+02 + 0.1000Е–05 = 0.2000Е+02;
может возникнуть так называемая ситуация "переполнения порядка" при сложении (умножении) очень больших чисел или "исчезновения порядка" при сложении (умножении) "очень малых чисел", в частности, 0.6000Е+39 × 0.1200Е+64 = 0.9999Е + 99 (или же не определено), а также 0.6000Е–35 × 0.0200Е–65 = 0.9999Е–99 (или же не определено), при соответствующим образом определенной разрядности десятичной арифметики;
при сложении чисел с плавающей запятой (а, в конечном счете, все операции выполняются через сложение) происходит выравнивание порядков для последующего сложения мантисс, а при выравнивании степеней может происходить потеря (усечение) младших разрядов, например, такая ситуация может возникнуть при сложении одного "очень большого числа" с одним "очень малым числом"
Есть много различных способов (часто искусственных) формирования систем чисел.
Пример. В факториальной системе счисления целые числа записывают линейной комбинацией факториалов, например, . Этасистема (условно) позиционна. Так как 0! = 1! = 1, то два младших разряда n-разрядного числа в разложении этого числа по факториалам представимы каки поэтому веса этих разрядов не зависят от позиции (поэтому приэто число можно считать непозиционным лишь условно). Формулаперевода из факториальной системы счисления в десятичную систему:
.
История развития систем счисления достаточно интересна. Приведем лишь некоторые факты. Счет вначале велся с помощью пальцев рук (пятерками и затем – десятками). В некоторых странах сохранился счет с основанием 12 (например, Великобритания – 12 шиллингов) и 20 (например, Франция – "quatre–vingts" или "четыре-двадцать" то есть 80; у древних адыгов счет велся аналогично: "тощIищ", то есть "двадцать-три" – 60) и др.
Более подробно о системах счисления, правилах перевода и арифметических операциях в них можно ознакомиться в методических указаниях:
Барилов И. В. Арифметические и логические основы ЭВМ: Пособие / И. В. Барилов, И. В. Москаленко, В. И. Науменко. – Шахты: Изд-во ЮРГУЭС, 2005.– 32с