Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

П3.10. Определение числа совпадающих (несовпадающих) разрядов двух n-разрядных двоичных чисел



При решении задачи необходимо выполнить сравнение одноименных разрядов двух двоичных чисел. Сравнение удобно выполнить с помощью поразрядной операции ИСКЛЮЧАЮЩЕЕ ИЛИ (сложение по модулю 2). Результатом этой операции является двоичное число, разряды которого содержат 1 для несовпадающих разрядов исходных чисел и 0 — для совпадающих. Нетрудно заметить, что после преобразований задача сводится к задаче, рассмотренной в п. П3.9.

П3.11. Определение числа переходов из 0 в 1 и из 1 в 0 в двоичном коде числа.
Решение данной задачи может использоваться при обработке цифровых данных экспериментальных исследований для определения числа периодов обрабатываемого сигнала. Фактически решается задача определения числа фронтов и спадов сигнала.

Сравнительно простым алгоритмом решения задачи определения числа переходов в слове, начиная со старшего разряда, является следующий:

– исходное слово сдвигается арифметически вправо на один разряд;

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

– выполняется подсчет числа единиц в слове, например с использованием решения, предложенного в п. П3.9.

При определении числа переходов в слове, начиная с младшего разряда, алгоритм оказывается сложнее, поскольку в системах команд микропроцессоров отсутствует команда (микрокоманда) «размножения» младшего разряда числа при сдвиге влево, аналогичная команде арифметического сдвига вправо. При выполнении сдвига влево указанную операцию сохранения значения младшего разряда числа можно реализовать некоторой последовательностью команд. После чего реализуется сложение по mod 2 значения сдвинутого числа с исходным и выполняется подсчет числа единиц в результирующем слове.

П3.12. Определение числа переходов из 0 в 1 (или из 1 в 0) в двоичном коде числа.

Существует несколько вариантов решения.

В качестве первых шагов решения данной задачи можно выделить все переходы из 0 в1 и из 1 в 0 в исходном слове (см. п. П3.11). Для этого требуется выполнить сложение по mod 2 двух слов — исходного и сдвинутого арифметически на один разряд вправо. Единицы в разрядах результата этой операции соответствуют всем переходам в исходном слове. Для выделения переходов, определяемых условием задачи, необходимо на слово результата операции сложения по mod 2 наложить маску. При выполнении операции И с исходным словом отмечаются переходы из 1 в 0, а при выполнении операции И с инверсным значением исходного слова выделяются переходы из 0 в 1. Число единиц в слове результата маскирования соответствует числу искомых переходов.

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

– на исходное слово накладывается маска, с помощью которой выделяются два старших разряда, а остальные разряды слова обнуляются;

– результат сравнивается с заданным типом перехода (10 0…0 или 01 0…0). При равенстве значений выделенных разрядов с заданным типом фиксируется переход, в противном случае переход не фиксируется;

– анализируемое слово сдвигается влево на один разряд, модифицируется счетчик циклов, после чего выполняется проверка условия завершения цикла. При невыполнении условия цикл повторяется для нового значения исходного слова.

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





Дата публикования: 2014-11-02; Прочитано: 705 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...