Преобразователь позиционного кода из одной системы счисления в другую
Изобретение относится к области вычислительной техники и может быть использовано при построении преобразователей кодов чисел из одной системы счисления в другую. Целью изобретения является расширение функциональных возможностей за счет обеспечения реверсивного преобразования ко,- да с любым основанием в код с другим основанием. Поставленная цель достигается тем, что в преобразователе позиционного кода из одной системы счисления в другую, содержащем масштабируюпще сумматоры 1, соединенные в треугольную матрицу, каждый масштабирующий сумматор содержит умножитель 7 и сумматор 8, первый вход которого соединен с выходом умножителя, а второй - с выходом соседнего младшего масштабирующего сумматора. 1 ил. СЛ
СОЮЗ СОВЕТСКИХ
СОЦИАЛИСТИЧЕСКИХ
РЕСПУБЛИК (51)4 Н 03 M 7 12
ОПИСАНИЕ ИЗОБРЕТЕНИЯ
ГОСУДАРСТВЕННЫЙ КОМИТЕТ СССР
ПО ДЕЛАМ ИЗОБРЕТЕНИЙ И ОТКРЫТИЙ
Н А BTOPCHOMY СВИДЕТЕЛЬСТВУ (21) 4006195/24-24 . (22) 07.01.86 (46) 07.04.87. Бюл. й- 13 (71) Смоленское специальное конструкторско-технологическое бюро систем программного управления (72) С.А.Лебедев (53) 681.325(088.8) (56) Авторское свидетельство СССР
В 317061, кл. Н 03 M 7/28, 1969.
Авторское свидетельство СССР
Ф 587469, кл. Н 03 М 7/18, 1972. (54) ПРЕОБРАЗОВАТЕЛЬ ПОЗИЦИОННОГО КОДА ИЗ ОДНОЙ СИСТЕМЫ СЧИСЛЕНИЯ В ДРУГУЮ (57) Изобретение относится к области вычислительной техники и может быть использовано при построении преобра„„SU„1302438 А1 зователей кодов чисел из одной системы счисления в другую. Целью изобретения является расширение функциональных возможностей sa счет обеспечения реверсивного преобразования ко; да с любым основанием в код с другим основанием. Поставленная цель достигается тем, что в преобразователе позиционного кода из одной системы счисления в другую, содержащем масштабирующие сумматоры 1 ° соединенные в треугольную матрицу, каждый масшта" бирующий сумматор содержит умножитель
7 и сумматор 8, первый вход которого соединен с выходом умножителя, а второй — с выходом соседнего младшего масштабирующего сумматора. 1 ил.! 13
Изобретение относится к вычислительной технике и может быть использовано при построении преобразователей кодов целых чисел из одной системы счисления в другую.
Целью изобретения является расширение функциональных возможностей преобразователя за счет обеспечения реверсивного преобразования кода с одним основанием в код с другим основанием.
На чертеже приведена структурная схема четырехразрядного преобразователя.
Преобразователь содержит масштаби", рующие сумматоры 1, соединенные в треугольную матрицу, каждый из которых имеет вход 2 старшего разряда, вход 3 младшего разряда, выход 4 старшего разряда и выход 5 младшего разряда, управляющий вход б и содержит умножитель 7 и сумматор 8, Кроме того, преобразователь имеет разрядные входы 9, выход 10 выбора режима работы и выходы 11.
Если необходимо подчеркнуть употребление числа в качестве цифры ис(1
Ъ пользуется знак (например, 10— цифра шестнадцатиричной или какой-ли-. бо другой системы счисления. Если необходимо подчеркнуть в какой системе счисления записано число, запись числа индексируется основанием системы счисления, заключенным в скобки (например, 10 12 с ь>- число, записанное в шестнадцатиричной системе счисления.
Пусть преобразователь предназначен для преобразования целых чисел из системы счисления с основанием Б в систему счисления с основанием R u обратно из R-системы в S. Положим для определенности, что S (R. Для представления S-цифры в R-системе счисления достаточно одной соответствующей R-цифры.
Количество входов 2 равно количеству входов 3, равно количеству выходов 4 и количеству выходов 5 масштабирующего сумматора 1 и равно ш, количество выходов сумматора 8 равно соответственно 2m. При преобразовании числа из S-системы счисления в R на входы 9 подаются не S-цифры, а S-коды соответствующих им цифр. Например, если S = 10, R = 1б, то ш = 2 шест1 надцатиричным цифрам О, 1 ..., 15 соответствуют те же самые стоичные цифры, которые в свою очередь кодиру02438 2 ются двумя десятичными цифрами, т.е. =-1 и
0«> 00, 1„., 01ит.д. до
15 gy6 ) 15 (знак заменяет слово соответствует), а при переводе деся5 тичного числа в шестнадцатиричное на входы 9 подаются не десятичные цифры
G,1,...,9, а пары десятичных цифр 00, 01 ° 02 ° ° ° ° @09.
При переводе (k + 1)-разрядного числа N из Я-системы счисления в R преобразователь работает следующим .образом.
На вход 10 управления подается ло гический "0" (или "1"). При этом константа, на которую производит умножение умножитель 7, равна S, умножитель
7 и сумматор 8 работают в R-системе счисления, но результаты на их выхо20 . дах появляются в виде S-кодов R-цифр.
Обозначим S-цифры входного числа N как а„, а,..., а, (где а — старк-! д м шая цифра; а,. — младпая), тогда
К
К-1
N=a„S+a S +,...,+а
25 =(...((a„S + а„,).S + à )S +
+,...,+ а S + а,). (1)
На входе 2 первого масштабирующего сумматора 1 первой строки матрицы поступает число а, на вход 3 этого к сумматора 1 поступает число а, на к- выходах 4 и 5 которого появляется число (а„ S + а, ), представленное в R-системе счисления двумя S-кодами
R-цифр. При этом старшая R-цифра чис 5 ла (а„ $ + а„, ) появляется на выходе
4, а младшая R-цифра — на выходе 5 этого сумматора 1.
Обозначим старшую и младшую К-цифры числа (а .8 + а„ „ ) первого элемента первой строки матрицы как Ь и
Ф
М
b„тогда
Ь„= а„Я+ а„,— Ъ.R (2)
Поскольку S e R R-цифра Ъ„ будет
45 также S-цифрой, à R-цифра Ь„ может
% быть, а может и не быть S-цифрой.
На вход 2 второго сумматора 1 первой строки матрицы поступает число
Ь», а на вход 3 этого сумматора 1 число а . Ha выходах 4 и 5 сумматок 2 ° ра .1 появляется число (bü„S + а„<) .
Причем старшая цифра появляется на выходе 4 а младшая — на выходе 5. Обоз1
Ф начим старшую цифру числа (Ъ S + а )
55 к К-2 как Ь,, младшую как b„, .
Э
Точно также на выходе 4 произвольного i-го (где 2 < i 6 k) масштабирующего сумматора 1 первой строки матри3 1302 цы поЯвлЯетсЯ R-цифРа Ь„ „;, которая является также S-цифрой, а на выходе
5 этого сумматора 1 появляется R-цифра, Которая определяется равенством
ЬК .1
- b„, +
= Ь..„», 8 R.
+ а и-i (3) На выходе 5 последнего k-го сумматора 1 первой строки матрицы появится
R-цифра, которая определяется выраже10 нием
1(.
b„=b .S+a — Ь, R, () где b, — R-цифра, появившаяся на выходе 4 этого k-го сумматора 1 первой строки матрицы или
Ь, =((...((a, S + Ä )S +
+ а „ ) S +,., + а,)S +
+а)-Rt(...((Ъ S+Ь„„) S+ 20
+ b„ ) S +,..., + b ) S + b„) ° (5)
В формуле (5) уменьшаемое равно входному числу И, а вычитаемое равно числу R десятков, содержащихся в чис- 25 ле N умноженному íà R. Таким образом, . R-цифра Ь равна числу R единиц, со% держащихся в числе N. Обозначим вычитаемое буквой M. Поскольку R-цифры
Ь,Ь,,. ° .,Ь являются также S-циф- 30 рами, запись числа М в S-системе счисления имеет вид (б) Разрядность числа M в S-системе
35 счисления на единицу меньше, чем разрядность исходного числа N а цифры числа M подаются на масштабирующие сумматоры 1 второй строки матрицы, содержащей (К вЂ” 1) сумматор 1 в точ- 40 ности так же, как цифры числа N подаются элементы первой строки матрицы.
Повторив - те же рассуждения для числа M и второй строки матрицы, получают, что на выходе 5 последнего эле- 45 мента второй строки матрицы формируется R-цифра R-десятков, содержащихся в числе N, а на выходе 4 элементов второй строки матрицы формируется
S-представление числа R-сотен, содер-50 жащихся в числе N и т.д. до последней строки матрицы. S-число, появившееся на выходе 4 единственного элемента последней строки матрицы, будет R-цифрой и дальнейшего его преобразования не требуется.
Таким образом, на выходе 4 элемента 1 последней строки матрицы и на выходах 5 последних элементов всех
438 4 строк матрицы формируется R-представление исходного числа, поданного на преобразователь в S-системе счисления.
При переводе (k + 1). †разрядно числа Еиз К-системы счисления в S-преобразователь работает следующим образом.
На вход 10 подается логическая "1" (или "0" соответственно). При этом константа, на которую производит умножение умножитель 7, равна R а умножитель 7 и сумматор 8 работают в
S-системе счисления:
Разбивка выходов сумматора 8 на две группы по ш является но существу переводом S-числа, появляющегося на выходе сумматора 8, в Т-систему (Т =
= S ), причем Т-цифры оказываются saкодированными S-цифрами. Можно считать, что сумматор 8 (а вместе с ним и умножитель 7) работает в Т-системе счисления, но T ) R и поэтому работа преобразователя при переводе числа из системы с меньшим основанием в систему с большим основанием происходит аналогично описанному.
Рассмотрим работу преобразователя четырехразрядного десятичного числа в шестнадцатиричное и обратно.. В этом случае S = 10, R = 16, m = 2. В качестве шестнадцатиричных цифр используются двухразрядные десятичные числа
00, 01,..., 15.
При переводе числа из десятичной системы счисления в шестнадцатиричную на вход 10 подается логический "О.".
При этом константа, на которую производит умножение умножитель 7, равна
10, а работать умножитель 7 и сумма- тор 8 будут в шестнадцатиричной системе счисления.
Перевод десятичного числа, например, 3875,, осуществляется следующим образом.
На выходах 4 элементов первой строки матрицы появятся десятичные коды
02, 04, и 02. На выходе 5 последнего элемента первой строки матрицы поя-.. вится десятичный код 03,шестнадцати- ричной цифры числа шестнадцатиричных единиц„ содержащихся в числе 3875,„6..
Соответственно на выходах 4 элементов второй строки матрицы появятся десятичные коды 01 и 05, на выходе 5. последнего элемента второй строки матрицы появится десятичный код 02. Соответственно на выходе 4 элемента последней строки матрицы появится десятичный код 00, на выходе 5 которого
5 13024 появится десятичный код 15. Десятичный код 00, появившийся на выходе 4 элемента последней строки матрицы, соответствует числу шестнадцатиричных тысяч. Таким образом, получается шестнадцатиричное представление
Строка а а а а а а а а а Ъ Ь Ь Ь Ь b Ь b, 149 0 1 0 0 1 0 1 0
1 0 1 0 1 1 1 1 1. число в двоично-восьмеричное, а затем переводить его в двоично-десятичное.
Сначала двоичное число разбивается на триады, начиная с младшего разряда,. а затем каждая триада дополняется до тетрады добавлением в нее нулевого старшего разряда. Это преобразование осуществляется внешним монтажом входов 9.
Таким образом; при преобразовании двоично-восьмеричного числа в двоично-десятичное 8 = 8, R - =10 в 1, т.е. входы 2 и 3 и выходы 4,5 состоят из четырех двоичных разрядов. Коэффициент умножения умножителя 7 равен 8, 50
3875 = 00 15 02 03 . (7)
410 i6)
При переводе числа из шестнадцатиричной системы счисления в десятиричную на вход 10 подается логическая
"1" ° При этом константа, на которую производит умножение умножитель 7, равна 16, а работать умножитель 7 и сумматор 8 будут, в десятичной системе счисления.
Перевод шестнадцаатиричного числа, например 10 15 02 03, осуществляется следующим образом.
На выходах 4 элементов первой строки матрицы появятся десятичные коды 01, 12 и 00, на выходе 5 последнего элемента первой строки матрицы появится десятичный код стоичной цифры 35. На выходах 4 элементов второй строки матрицы появятся десятичные коды 00 и 04, на выходе 5 пос-, леднего элемента второй строки матрицы появится десятичный код стоичной
30 цифры 48, На выходе 4 и 5 элемента последней строки. матрицы появятся десятичные коды 00 и 04. Таким образом
= 00 04 448; 5
00044835а1о
Заполнив всю таблицу, получают табличное задание системы функций. В, эту таблицу входят все возможные наборы аргументов а а,...,а
7 б
Рациональнее всего, но не обязательно, выполнять требуемое устройство на основе ПЗУ, например, с организацией 9 * 8.
Вторую половину объема ПЗУ отводят под устройство, которое работает при переводе двоичных чисел в двоичнодесятичные. В этом случае на вход 6 подается единица. Наиболее рационально объем ПЗУ используется,.если предварительно преобразовать двоичное
38 6
При преобразовании двоично-десятичных чисел в двоичные S = =10, R =
= 2, ш = 4. Коэффициент умножения умножителя 7 равен 10, умножитель 7 и сумматор 8 работают в двоичной системе счисления. Для того, чтобы спроР r ° ектировать масштабирующий сумматор 1, необходимо задать систему логических функций в табличной форме, Обозначим младший вход 3 а,, а,, а, а . Аналогично обозначим вход2 а, а, а . и а, а вход 6 как а . Точно так же обозначим выход 5 Ь, Ъ;, Ь и Ъ а выход 4 — Ъ, Ъ6, b и Ъ
Таблица, задающая эту систему функций, содержит 256 строк и .17 столбцов. В первых девяти столбцах записываются значения аргументов а, а„,..., а, в остальных восьми столбо цах — значения функций b„, Ь,...,b, .
Поскольку при переводе двоично-десятичных чисел в двоичные на вход 6 корректирующего элемента 1 подается ноль, значение аргумента а в составляемой таблице всегда нулевое. Пронумеруем строки таблицы от 0 до 255.
Рассматривая наборы переменных
a„a а а и а а а а. как четырехраз6 5 4 3 и 1 о рядные двоичйые числа, находят восьмиразрядное двоичное число, определяемое по формуле а,а а а„,, 1010„> + а а,„а Я,, и запишем значения разрядов этого числа в столбцах Ь Ь,...,b, в строке с двоичным номером а„а а, а„ à, a,à, а.. Например, 149-я строка составляемой таблицы выглядит следующим образом:
7 1302438 8 а b b b Ь b
67 1 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 1 умножитель 7 и сумматор 8 работают в десятичной системе счисления. Для проектирования масштабирующего сумматора составляют аналогичную таблицу.
Обозначают двоичные разряды 3 входов как аза а. и а, начиная со старшего, 3 и 1 о а двоичные разряды входа 2 как а а а ь s и а, двоичные разряды выхода 5 как
b b b, и bo, а двоичные разряды выхода 4 как Ъ Ь b u b соответственно.10
7 б Б 4
Таблица имеет семнадцать столбцов и сто строк. Заполнение таблицы производят следующим образом.
Нумеруют строки таблицы двухразрядными десятичными числами от 00 до 15
Строка а а а а а а а а
Заполнив всю таблицу, получают табличное задание функций. На не вошед— ших в таблицу наборах аргументов функции могут принимать произвольные эна — 25 чения.
Предлагаемое устройство может быть также реализовано на основе ПЗУ с организацией 9 " 8, причем для его реализации требуется половина объема ПЗУ.
Объединяя обе составленные таблицы в одну, получают полную таблицу программирования ПЗУ для работы в качестве масштабирующего сумматора в преобразователе целых чисел, предназначенном для преобразования двоичнодесятичных чисел в двоичные и двоичных в двоично-десятичные.
Формула изобретения
Преобразователь позиционного кода из одной системы счисления в другую, содержащий масштабирующие сумматоры, соединенные в треугольную матрицу таким образом, что входы старшего разряда первого масштабирующего сумматора и входы младшего разряда всех масштабирующих сумматоров первой строки 50 матрицы соединены с соответствующими разрядными входами преобразователя, входы старших разрядов всех масштаби— рующих сумматоров первой строки, кроме первого, соединены с выходами младших разрядов соседнего старшего масштабирующего сумматора первой строки, вход старшего разряда первого масштабирующего сумматора i-й строки
99. В первый столбец таблицы, соответствующий.а,, во все строки заносится единица. В следующие восемь столбцов таблицы заносится двоично-десятичный код номера строки. Для строки, 1 Г Ч имеющей номер а b находят двух" <10> разрядное число — (ю> (so) ceo 10>
Затем записывают в строку, имеющую и номер а Ь „, в столбцы, соответствующие функциям, — двоично-десятичГ1 (-, ные коды цифр С, и d . Например, — <10 > а-л c to
67-я строка этой таблицы выглядит следующим образом: (i = 2 — k — 1, где k — число разрядов входного кода) соединен с выходом старшего разряда масштабирующего .суМматора (i — 1)-й строки, вход младшего разряда- j-го масштабирующего сумматора i é строки (j = 1 — k — - z) соединен с выходом старшего разряда (j + 1)-го масштабирующего сумматора (i — 1)-й строки, вход старшего разряГ,а (j + 1)-го масштабирующего сумматора i-й строки соединен с выходом младшего разряда j-го масштабирующего сумматора -й строки, выход стар-. шего разряда масштабирующего сумматора (k — 1)-й строки и выходы младших разрядов последних масштабирующих сумматоров всех строк являются разрядными выходами преобразователя, отличающийся тем, что, с целью расширения функциональных возможностей за счет обеспечения реверсивного преобразования кода с любым основанием в код с любым другим основанием, в нем все масштабирующие сумматоры содержат умножитель и сумматор, управляющие входы которых соединены с входом выбора режима работы преобразователя, выход умножителя соединен с входом первого слагаемого сумматора, вход второго слагаемого которого соединен с входом младшего разряда масштабирующего сумматора, вход старшего разряда которого соеди нен с входом умножителя, первая и вторая группы выходов сумматора явля.— ются соответственно выходами старшего и младшего разрядов масштабирующего сумматора.




