Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы_ГОС_2007.doc
Скачиваний:
72
Добавлен:
10.02.2016
Размер:
3.91 Mб
Скачать

2.2. Вертикальные операции и устройства

2.2.1. Операция вертикального сложения.

Вертикальное сложение выполняется над параллельным кодом подсчетом количества его единиц в заданной системе счисления (СС). Для этого используется алгоритм перевода количества единиц операнда в СС с основанием k.

Этот алгоритм выполняется итерационно. На каждой итерации выполняется деление количества единиц частного предыдущей операции деления (на первой итерации — количества единиц параллельного кода) на основание k СС. Процесс продолжается до получения частного, меньшего основания k. Вычисляемые остатки и последнее частное составляют результат, начиная с младшей цифры. Величина каждой цифры определяется количеством ее единиц. Для получения результата в двоично-кодированной СС далее каждую цифру следует перевести в двоичную СС, т. е. подсчитать в ней количество единиц в СС с основанием k=2.

2.2.2. Операция деления количества единиц.

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

Операнд элементарной операции складывается из k разрядов, замещаемых единичным значением частного и k-1 разрядов, соответствующих максимальному значению остатка, что составляет n=2k-l бит.

Операция деления количества единиц на k, выполняемая над операндом большей, чем 2k-l разрядности, называется полноразрядным делением. Полноразрядное деление вычисляет код остатка и код частного.

Наибольшую сложность для выполнения операции элементарного деления представляет произвольное расположение единиц в параллельном коде.

Операция, перемещающая все единицы кода в его начало, а нули — в конец, называется упорядочением единиц кода, а полученный код — упорядоченным.

Способ выполнения операции элементарного деления на k содержит:

— упорядочение единиц кода а {12k-1} с получением упорядоченного кода ao{12k-l} и частного q=a0[k],

— выбор остатка r{1k-1} по частному q из младшей ao{1k-l} или старшей ao{k+12k-1} части упорядоченного кода.

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

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

2.2.3. Операция упорядочения единиц.

Упорядочение единиц выполняется через операции доупорядочения единиц. Операция доупорядочения единиц объединяет упорядоченные коды операндов в упорядоченный код суммарной длины к суммарного количества единиц. Разряд а результирующего кода вычисляется как дизъюнкция разрядов ау операндов (при наличии а/) и всевозможных конъюнкций разрядов операндов с суммой индексов /. В конъюнкцию включается не более одного разряда от одного операнда.