Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Кузин - Логические основы

.pdf
Скачиваний:
37
Добавлен:
03.05.2015
Размер:
2 Мб
Скачать
☆

Глава I. Информация и данные

Важное замечание. Как внешнее, так и внутреннее представление единицы данных являют собой последовательности символов. Отличие первого от второго заключается в алфавите используемых символов и в способе образования строки. Если внешнее представление может содержать достаточно произвольные символы и строится по «человеческим» законам, то внутреннее представление состоит только из нулей и единиц и строится по «компьютерным» законам. То же можно сказать относительно внешнего и внутреннего представлений набора данных

В модельном мире код значения числового атрибута представляется записью числа (десятичной константой языка описания чисел), а в компьютерном мире - кодом числа (двоичной константой структуры хранения чисел). Например, 125 - запись числа, 1111101 - код числа.

В случае качественного атрибута, множество допустимых его значений образует неметрическое множество свойств объекта. Например, атрибут ЦВЕТ. В модельном мире значением качественного атрибута служит запись (имя) свойства объекта, в компьютерном мире - двоичный код, обозначающий то же свойство. Например, BLUEзапись языка опи-

сания цвета, 01000010010011000101010101000101 - двоичный код цвета.

Теперь мы можем утверждать что:

•информация об объектах реального мира представляется нам в виде данных;

•данные - это обозначения характеристик объекта, которые хранятся, передаются по линиям связи на расстояние и обрабатываются аппаратными средствами;

•данные возникают в процессе выделения и анализа свойств сущности. Частный случай получения данных – количественные измерения.

Следует выделить три проблемы, связанные с использованием

данных в человеческой деятельности.

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

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

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

С. Г. Кузин. Логические основы автоматической обработки данных

9

Глава I. Информация и данные

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

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

Отсюда возникает еще одна проблема, связанная с использованием информации в человеческой деятельности.

Проблема 4. Кодирование информации: конструирование формальных языков и формальных кодов, обозначающих характеристики объектов реального мира; создание наборов данных для обозначения конкретных объектов реального мира с целью обработки информации об этих объектах.

1.1.Контрольные вопросы

1.Понятие концептуального класса и элемента концептуального клас-

са.

2.Основная цель обработки информации.

3.Атрибуты и коды значений атрибутов.

4.Понятие единицы данных и набора данных.

5.Внешнее и внутреннее представление данных.

6.Проблемы использования информации в человеческой деятельности.

10 С.Г. Кузин. Логические основы автоматической обработки данных

Глава I. Представление целых неотрицательных чисел

2. Представление целых неотрицательных чисел

2.1. Проблемы представления целых неотрицательных чисел

Рассмотрим представление простых единиц данных, т.е. таких единиц, каждая из которых при обработке рассматривается как единое неделимое целое. Самая простейшая из них – запись целого неотрицательного числа (целого числа без знака).

Целое число без знака определяется как характеристика (мера) количества элементов в множестве. Существует еще одно определение целого без знака - характеристика порядка расположенных в ряд элементов.

Определена алгебра целых чисел без знака (целых неотрица-

тельных чисел):

Aцбз = <N+; , >

( I.2)

Здесь, N+ - основное множество алгебры (множество целых неотрицательных чисел); и - операции сложения и умножения соответственно.

Алгебра Aцбз замкнута относительно операций сложения и умножения. Т.е. результат такой операции над двумя целыми неотрицательными числами также является целым неотрицательным числом.

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

ется записью или кодом числа.

Замечание. Обычно не производят разделения между абстрактным числом и его записью (обозначением, кодом) и говорят "число" понимая под этим термином "запись числа".

Рассмотрим проблему создания системы обозначений целого числа без знака. При создании такой системы необходимо выполнить два условия:

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

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

С. Г. Кузин. Логические основы автоматической обработки данных 11

Глава I. Представление целых неотрицательных чисел

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

Если первое положение очевидно, то второе иллюстрируется на примере сложения (Рис. I.3).

На множестве абстрактных чисел определена абстрактная операция сложения. Она отображает два числа в результат. Два операнда операции обозначаются (кодируются), в результате чего получается запись1 и запись 2. Алгоритм сложения преобразует две записи – операнды в запись результат. При этом соблюдается условие: запись результат отображается (декодируется) в абстрактное число, которое равно результату сложения абстрактных чисел.

Операнд1

Операнд2

Результат

 

 

 

 

 

 

 

 

Абстрактные

 

 

Алгоритм +

числа

Кодирование

Кодирование

 

Декодирование

Записи (коды)

 

 

 

Запись1

 

 

чисел

Запись2

Запись результата

 

Рис. I.3. Абстрактная операция и алгоритм сложения

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

2.2. Примитивная система представления целых без знака

Предположим, что мы работаем на складе пиломатериалов, и в нашу задачу входит не только сгружать привозимые доски, но считать их количество.

12 С.Г. Кузин. Логические основы автоматической обработки данных

Глава I. Представление целых неотрицательных чисел

Распространенный прием: сгрузив очередную доску, ставить в записной книжке «палочку».

Таким образом, последовательность «палочек» правомерно рассматривать как обозначение целого неотрицательного числа (Рис. I.4). Будем называть такое обозначение примитивной записью числа.

Рис. I.4. Примитивная запись целого без знака

Самое интересное, что для примитивных записей существуют простые алгоритмы сложения и умножения. Так, для того, чтобы сложить два числа, следует ‘склеить’ две примитивных записи, обозначающие эти числа.

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

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

2.3. Позиционная система обозначения целых без знака

Придуманная нами примитивная система обозначения целых без знака страдает одним существенным недостатком: очень большое число знаков (единиц) в записи числа. Причем, длина записи пропорциональна величине числа.

Каждый, наверное, занимался усовершенствованием системы примитивных записей целых без знака. Для этого, последовательность единиц группировалась в десятки, десятки группировались в сотни и т.д. (Рис. I.5)

Сотни

Десятки

Единицы

...

... ...

Рис. I.5. Переход к позиционной системе представления целых без знака

Проделав такое позиционирование, мы можем представить число в следующем виде:

...((d3*10+d2)*10+d1)*10+d0

(I.3)

С. Г. Кузин. Логические основы автоматической обработки данных

13

Глава I. Представление целых неотрицательных чисел

Здесь, d3,d2,d1,d0 - полное число тысяч, сотен, десятков и единиц соответственно.

Мы перешли к алфавитной позиционной системе счисления - алфавитной системе кодирования целого числа без знака, предложенной, как считается, арабами и основанной на следующих принципах:

•вводится конечное, относительно небольшое число знаков - алфа-

вит цифр;

•каждая линейная последовательность цифр образует запись (обозначение) некоторого числа.

Используя конечный алфавит цифр, можно получить бесконечное

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

Однако не следует забывать, что эти цепочки должны быть самоинтерпретирующимися, т.е. нести в себе информацию о величине числа. Этому условию удовлетворяет алфавитная позиционная система обозначения (кодирования) целых чисел без знака. Ее также называют позици-

онной системой счисления.

Прежде всего, выделим два целых числа без знака, которые играют особую роль: число, обозначаемое как 0, характеризует отсутствие элементов в множестве; число, обозначаемое как 1, характеризует минимально - возможное увеличение или уменьшение числа элементов в множестве.

Концепция позиционной В-ичной системы кодирования (счисления) целых чисел без знака заключается в четырех пунктах.

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

2.Для чисел базы выбираются уникальные обозначения, которые называются цифрами.

3.Любое целое число без знака единственным образом представляется с помощью чисел базы системы счисления и операций сложения -

умножения в виде канонического арифметического выражения:

ЗНАЧЕНИЕв(цбз)=(dn-1*Bn-1+dn-2*Bn-2+...+d1*B1+d0*B0)в. (I.4)

4.Последовательность коэффициентов канонического арифметического выражения также единственным образом характеризует величину числа и называется записью числа в В-ичной системе кодирования (счисления):

ЗАПИСЬв(цбз) = (dn-1dn-2...d1d0)в

(I.5)

При этом, о коэффициенте di принято говорить как об i-м разряде числа, а об n - как о количестве разрядов числа. Диапазон чисел 0÷n-1

называется разрядной сеткой числа (Рис. I.6).

14 С.Г. Кузин. Логические основы автоматической обработки данных

Глава I. Представление целых неотрицательных чисел

 

 

...

 

...

 

 

d n-1

d n-2

d i

d1

d0

 

 

 

 

 

 

 

n-1

n -2

 

i

 

1

0

Рис. I.6 . Разрядная сетка числа

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

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

Таблица I.1. Запись числа и каноническое выражение

Система счисления

Запись

Каноническое выражение

10

[125]10

[1*102+2*101+5*100]10

8

[125]8

[1*82+2*81+5*80]8

Очевидно, что одно и то же число может быть представлено в различных системах счисления. В модельном мире человек использует десятичную позиционную систему счисления. В компьютерном мире используется двоичная позиционная система счисления. Кроме того, используются вспомогательные восьмеричная и шестнадцатеричная системы счисления.

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

различных систем счисления:

 

[10]2 = 2, [10]8 = 8, [10]16 = 16.

(I.6)

Существует формула, позволяющая определить число q различных n - разрядных чисел в системе счисления с основанием B:

q = Bn.

(I.7)

Для того чтобы все эти числа выписать, следует воспользоваться простым правилом:

•образуется таблица, состоящая из n столбцов и Bn строк;

•столбцы нумеруются справа - налево: n-1, n-2,...,1, 0;

•в столбце 0 записывается последовательность: 010101....;

•в столбце 1 записывается последовательность: 00110011...;

•в столбце 2 записывается последовательность:

•0000111100001111...;

•и т.д.

Так, например, имея в своем распоряжении 3 двоичных разряда,

можно записать в них 23 = 8 различных двоичных числа.

С. Г. Кузин. Логические основы автоматической обработки данных 15

Глава I. Представление целых неотрицательных чисел

Таблица I.2. Трехразрядные двоичные числа

разряды числа

 

2

 

 

1

 

 

0

 

 

 

0

 

0

 

0

 

 

 

0

 

0

 

1

 

 

 

0

 

1

 

0

 

 

 

0

 

1

 

1

 

 

 

1

 

0

 

0

 

 

 

1

 

0

 

1

 

 

 

1

 

1

 

0

 

 

 

1

 

1

 

1

 

 

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

Таблица I.3. Различные системы счисления

 

 

Основание системы счисления

16

 

Число

10

 

2

8

 

Нуль

0

 

0

0

 

 

 

 

 

0

 

Один

1

 

1

1

 

 

 

 

 

 

 

1

 

Два

2

 

10

2

 

 

2

 

Три

3

 

0011

3

 

 

3

 

Четыре

4

 

0100

4

 

 

4

 

Пять

5

 

0101

5

 

 

 

 

 

 

 

5

 

Шесть

6

 

0110

6

 

 

 

 

 

 

 

6

 

Семь

7

 

0111

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

 

Любая позиционная система счисления (кодирования) решает проблему обозначения целых чисел без знака:

•любое целое без знака может быть обозначено последовательностью цифр - записью числа;

•записи (обозначения) самоинтерпретирующиеся, т.е. допускают простые алгоритмы выполнения арифметических операций: ОБОЗНАЧЕНИЕ (первое слагаемое) + ОБОЗНАЧЕНИЕ(второе слагаемое) = ОБОЗНАЧЕНИЕ (сумма двух слагаемых).

16 С.Г. Кузин. Логические основы автоматической обработки данных

Глава I. Представление целых неотрицательных чисел

Позиционное представление целого числа без знака основано на том, что значение любого такого числа может быть однозначно выражено через значение чисел базы и значение основания системы счисления. При таком выражении используются операции алгебры целых неотрицательных чисел. Таким образом, значение любого числа представляется в виде канонического арифметического выражения (арифметического выражения специфического вида - Рис. I.7)

 

 

 

Канонич.а.в.

 

Числа базы

B

 

 

 

N +

0

1

1 0

1 2 5

 

Рис. I.7. Каноническое арифметическое выражение

Можно также определить В-ично десятичную систему обозначения чисел. В этом случае цифры В-ичной системы представляются десятичными числами.

Например: (AF7)16 →(10,15,7)16-10. Следует иметь в виду, что простых алгоритмов выполнения арифметических операций для такой системы не существует

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

В практике компьютеризации используются две основные системы счисления (обозначения) целых чисел без знака: десятичная и двоичная. Существуют достаточно простые алгоритмы перевода записи числа из одной системы счисления в другую.

Алгоритм I.1. Перевод В → 10.

Перевод В-ичной записи числа в десятичную запись числа. Для получения записи (d)10 числа d из записи (d)в, следует:

1.Построить в системе с основанием В соответствующее каноническое выражение [е]в, представляя основание как 10;

2.Представляя элементы этого канонического выражения [е]в в десятичной системе, перевести его в неканоническое выражение (е)10 десятичной системы;

3.Вычислить неканоническое выражение (е)10 и получить десятичную запись числа (d)10.

Пример.

Перевод (запись числа)8 → (запись числа)10;

С. Г. Кузин. Логические основы автоматической обработки данных 17

 

 

Глава I. Представление целых неотрицательных чисел

 

(d)8: запись числа в 8-й системе:

(125)8

 

 

 

 

 

 

[e]8: каноническое выражение числа: [1*102+2*101+5*100]8

 

 

 

(e)10: выражение числа в 10-й системе: (1*82+2*81+5*80)10

 

 

 

(d)10: запись числа в 10-й системе:

 

 

(85)10

 

 

 

Пример.

 

 

 

 

 

 

 

 

 

 

 

 

 

Перевод (запись числа)16 → (запись числа)10

 

 

 

 

 

(d)16: запись в 16-й системе: (125)16

 

 

 

 

 

 

[e]16: каноническое выражение числа [1*102+2*101+5*100]16

 

 

 

(e)10: выражение числа в десятичной системе: (1*162+2*161+5*160)10

 

(d)10: запись в десятичной системе:

 

 

(293)10

 

 

 

Пример.

 

 

 

 

 

 

 

 

 

 

 

 

 

(125)2

- недопустимая запись двоичного числа

 

 

 

 

 

Пример.

 

 

 

 

 

 

 

 

 

 

 

 

 

(253)10 = (FD)16 = (375)8 = (11111101)2

 

 

 

 

 

 

 

Примечание. Для выполнения перевода из одной системы счисле-

ния в другую полезно помнить десятичные записи степени числа 2.

 

0

1

 

2

3

4

 

5

 

6

7

8

9

 

10

1

2

 

4

8

16

 

32

 

64

128

256

512

 

1024

Алгоритм I.2 . Перевод 10 → В.

Перевод десятичной записи числа в В-ичную запись числа. Используются операции целочисленного деления:

X mod Y - результатом является остаток от деления X на Y;

X div Y - результатом является целая часть от деления X на Y. Вычисления выполняются в десятичной системе.

В результате получается запись числа в системе с основанием В, записанная в обратном порядке (Рис. I.8).

Пример. Перевод (запись числа)10 → (запись числа)2

125

2

 

 

 

-124

62

2

 

 

1

-62

31

2

 

 

0

-30

15

2

1

-14

7

2

 

 

1

-6

3

2

1

-2

1

 

1

 

В результате получаем: [125]10 = [1111101]2 Пример. Перевод (запись числа)10 → (запись числа)16

125 16

-112

7

13

 

В результате получаем: [125]10 = [7D]16

18 С.Г. Кузин. Логические основы автоматической обработки данных