Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на ГОСЫ.docx
Скачиваний:
131
Добавлен:
10.05.2015
Размер:
808.24 Кб
Скачать

Прямой, обратный и дополнительные коды.

Когда числа записываются в десятичной системе, часто чис­ло представляется в виде абсолютной величины, которой пред­шествует знак + или - указывающий на то, является оно по­ложительным или отрицательным. Поэтому +125 является положительным числом 125, а -125 — отрицательным числом 125. Для обра­ботки как положительных, так и отрицательных чисел ЭВМ должна иметь некоторые средства различения положительных и отрицательных чисел. Машинное слово со­держит разряд знака, как правило предшествующий старшему разряду в машинном слове.

Где 1 в разряде знака соответствует отрицательному числу, а 0 в раз­ряде знака — положительному числу.

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

Существуют три основные системы записи:

1. Отрицательные числа могут храниться в прямом коде. Поэтому двоичное число -0011 будет храниться в виде 1.0011, где 1 указывает на то, что это число отрицательное, а 0011 обозначает его абсолютную величину.

2. Для записи отрицательного числа можно воспользоваться обратным кодом. При этом двоичное число —0111 будет пред­ставлено в виде 1.1000, где 1 указывает на то, что число отри­цательное. 1000 является дополнением его абсолютной величи­ны до 1. (Дополнение абсолютной величины до 1 получается путем отрицания каждого ее бита.)

3. Для представления отрицательных двоичных чисел мож­но использовать дополнительный код. Например, число —0111 будет храниться как 1.1001, где 1 в разряде знака показывает, что число отрицательное, 1001—дополнение его абсолютной величины до двух. (Дополнение до двух формируется путем от­рицания каждого бита абсолютной величины 0111, что дает 1000, и прибавлением 1 к младшему биту, в результате чего по­лучается 1001.)

2. Основные классы архитектур программных средств.

Различают следующие основные классы архитектур программных средств:

  1. цельная программа,

  2. комплекс автономно выполняемых программ,

  3. слоистая программная система,

  4. коллектив параллельно выполняемых программ.

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

Комплекс автономно выполняемых программ состоит из набора таких программ, что:

  • любая из них может быть активизирована (запущена) пользователем;

  • при выполнении активизированной программы другие программы не могут быть запущены, пока не закончит выполнение активизированная программа;

  • все программы этого набора применяются к одной и той же информационной среде.

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

Слоистая программная система состоит из некоторой упорядоченной совокупности программных подсистем ( слоев), такой, что:

  • на каждом слое ничего не известно о свойствах вышележащих слоев;

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

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

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