- •1 Билет
- •2. Перевод правильной дроби из кода д1 в двоичную систему счисления
- •4 Билет
- •1. Представление чисел со знаком в эвм
- •2. В первом билете
- •5 Билет
- •Проектирование автомата Мили Кодированная таблица переходов-выходов
- •I1. Формы представления чисел в эвм
- •1. Формы представления чисел в эвм
- •Перевод целого двоичного числа в код д1
- •8 Билет
- •2. Перевод целого числа из кода д1 в двоичную систему счисления
- •9 Билеьт
Перевод целого двоичного числа в код д1
Как было отмечено в предыдущем разделе, результат перевода в этом случае будет представлять каждую десятичную цифру в виде четырехразрядного двоичного кода. Поскольку код Д1 имеет естественные веса разрядов, то получаемые при переводе тетрады будут кодами соответствующих десятичных цифр в коде Д1. Если требуется выполнить перевод двоичного целого числа в код Д2 или Д4, необходимо уточнить механизм коррекций в тетрадах в соответствии с допустимыми в рассматриваемом коде тетрадами. В качестве примера выполним обратных перевод полученного в предыдущем разделе двоичного числа в код Д1. Так же, как и в предыдущем случае, требуется оценить число необходимых десятичных разрядов. Число значимых двоичных разрядов равно 8, следовательно, требуемое число десятичных разрядов равно n=]log28[ =3.
Схема операционного автомата должна содержать следующие структурные элементы:
РгА[0-11] для записи тетрад кода Д1,
РгВ[0-7] для записи исходного двоичного числа,
КС1 – три комбинационные схемы для выполнения коррекций в тетрадах,
СТ служит для контроля числа подсуммированных разрядов двоичного числа.
КС1 выполняет коррекцию тетрад следующим образом: для кода Д1 коррекция «+3» выполняется в тетраде, если ее значение превышает 4. Это позволяет избежать при сдвигах РгА влево появления недопустимых тетрад.
В каждом такте производится подсуммирование старшего бита двоичного числа к коду десятичного числа. Цикл управляется значением счетчика СТ. Выход из цикла при СТ=0.
Пример перевода целого двоичного числа в код Д1 в таблице 3.
Таблица 6 Перевод целого двоичного числа в код Д1
РгАРгВСТКомментарии0000 0000 0000100010018РгА:=0, РгВ:= [B],0000 0000 00010001001-7РгА[11]:= РгВ[0], РгВ:=L(1)РгВ,
0000 0000 001-СТ=0? НЕТ
РгА[0-3]>4?НЕТ РгА[4-7]>4? НЕТ РгА[7-11]>4?НЕТ
Коррекции в тетрадах не требуются. РгА:=L(1)РгА,0000 0000 0010001001--6РгА[11]:= РгВ[0], РгВ:=L(1)РгВ,0000 0000 010-СТ=0? НЕТ
РгА[0-3]>4?НЕТ РгА[4-7]>4? НЕТ РгА[7-11]>4?НЕТ
Коррекции в тетрадах не требуются. РгА:=L(1)РгА,0000 0000 010001001---5РгА[11]:= РгВ[0], РгВ:=L(1)РгВ,0000 0000 100-СТ=0? НЕТ
РгА[0-3]>4?НЕТ РгА[4-7]>4? НЕТ РгА[7-11]>4?НЕТ
Коррекции в тетрадах не требуются. РгА:=L(1)РгА,0000 0000 10001001----4РгА[11]:= РгВ[0], РгВ:=L(1)РгВ,0000 0000 1011СТ=0? НЕТ
РгА[0-3]>4?НЕТ РгА[4-7]>4? НЕТ РгА[7-11]>4?ДА
Требуется коррекция в третьей тетраде.
Выполняем коррекцию +3.0000 0001 011-РгА:=L(1)РгА,0000 0001 0111001-----3РгА[11]:= РгВ[0], РгВ:=L(1)РгВ,0000 0001 1010СТ=0? НЕТ
РгА[0-3]>4?НЕТ РгА[4-7]>4? НЕТ РгА[7-11]>4?ДА
Требуется коррекция в третьей тетраде.
Выполняем коррекцию +3.0000 0011 010-РгА:=L(1)РгА,0000 0011 010001------2РгА[11]:= РгВ[0], РгВ:=L(1)РгВ,0000 0110 100-РгВСТ=0? НЕТ
РгА[0-3]>4?НЕТ РгА[4-7]>4? НЕТ РгА[7-11]>4?НЕТ
Коррекции в тетрадах не требуются.
РгА:=L(1)РгА,0000 0110 10001-------1РгА[11]:= РгВ[0], РгВ:=L(1)РгВ,0000 1001 1011СТ=0? НЕТ
РгА[0-3]>4?НЕТ РгА[4-7]>4? НЕТ РгА[7-11]>4?НЕТ
Коррекции во второй и третьей тетрадах +30001 0011 011-РгА:=L(1)РгА,0001 0011 0111--------0РгА[11]:= РгВ[0], РгВ:=L(1)РгВ,СТ=0? ДА
Выход из цикла. Коррекция тетрад не выполняется.
Ответ: данное двоичное число равно 13710.
Таким образом, алгоритм перевода целого двоичного числа в код Д1 работает до тех пор, пока не будут подсуммированы все разряды двоичного числа, начиная со старшего к десятичному числу. Так как подсуммирование всегда производится после сдвига, то подсуммирование означает просто замещение нуля, стоящего в младшем разряде РгА, на значение старшего разряда РгВ. Признак СТ=0 означает выход из цикла. При этом сдвиг РгА не производится и коррекция в тетрадах не выполняется.
