Алгоритм сравнения двух чисел в двоичной системе(
R
Riasoft
Добрый день всем, не хватает у меня ума, нужен алгоритм сравнения двух чисел заданных в двоичной системе исчисления, и чтобы его можно было реализовать с помощью обычных логических элементов (и, или, нет), уже везде искал, толком ни чего не нашел
d
demiurg_ii
Сколько разрядов? Предлагаю АЦЦКЕЙ калхоз:
Два дешифратора, и длиинная линейка елементов И-НЕ, :-)
Два дешифратора, и длиинная линейка елементов И-НЕ, :-)
Дыть одно число инвертируешь, прибавляешь единицу, прибавляешь другое и смотришь переполнение
R
Riasoft
два 32битных числа на входе) на выходе 1 если А<Б, или О если A>B,
мне без разницы какой будет размер алгоритма, все запихиваю в Max+Plus II))))))))
мне без разницы какой будет размер алгоритма, все запихиваю в Max+Plus II))))))))
R
Riasoft
Почему DDD не предложил вколхозить PIC?
это точно отпадает, потому что тот самый PIC и разрабатывается
Почему DDD не предложил вколхозить PIC?
Потомушто аффтар аппаратно на логике просит. Он недавно сумматоры изучал - вот ему в акурат про эти суматоры и задача.
d
demiurg_ii
А можно и PIC :-) Свободно распространяемые прошивки ядра PIC для плисин есть у нас?
потому что тот самый PIC и разрабатывается
Так ПЛИС или PIC????
Хотя трите тут без меня. Не встречваю. Просто не понимаю кто за это будет платить..а такбы я разобрался..:-)...
R
Riasoft
Вот что я реализовал пока в ПЛИСе,
свой 32разрядный цпу, только ему не хватает операций сравнения двух чисел
riasoft.narod.ru/cpu105.jpg (ахтунг разрешение 10000х10000)
(АЛУ, 4 регистра, блок управления копированием регистров, блок управления процессором идет отдельно)
свой 32разрядный цпу, только ему не хватает операций сравнения двух чисел
riasoft.narod.ru/cpu105.jpg (ахтунг разрешение 10000х10000)
(АЛУ, 4 регистра, блок управления копированием регистров, блок управления процессором идет отдельно)
d
demiurg_ii
сравнение двух чисел
= вычитание без записи результата. только там признаков существенно больше формируется: минимум для приличного процессора -- знак, ноль, перенос.
R
Riasoft
все разработано в Мах+pluss II, с использованием стандартных логических элементов и, или , нет))
так что я медленно двигаюсь к цели
так что я медленно двигаюсь к цели
R
Riasoft
= вычитание без записи результата. только там признаков существенно больше формируется: минимум для приличного процессора -- знак, ноль, перенос.
попроще , на пальцах можно, я только недавно узнал как вычитание реализовать с помощью сложения ( А - B = A + not B !+1, единица добавляется в начале сложения), собственно вычитание то же пока не реализованно
попроще , на пальцах можно,
одно число инвертируешь, прибавляешь единицу, прибавляешь другое и смотришь переполнение
Реализуецо 2 сумматорами. Аппаратно. Без алгоритма.
d
demiurg_ii
это одно и тоже
не-а. Знак - тупо копия самого верхнего разряда, а перенос -- тупо значение следующего за ним виртуального, который перед операцией обнуляется и из которого при необходимости занимают. ноль -- это тоже тупо "или-не" по всем разрядам результата. :-).
[Сообщение изменено пользователем 28.01.2012 19:25]
не-а
Ну так та да, конечно. Но применительно к арифметике с разрядностью на 1 меньше, чем алу проца - монопенисуально получаецо.
R
Riasoft
Реализуецо 2 сумматорами. Аппаратно. Без алгоритма.
это проверка их на равенство, а как узнать что A<B или A>B?
d
demiurg_ii
а как узнать что A<B или A>B?
это вопрос терминологии. при работе со знаковыми числами за ето отвечает признак "знак". При работе с беззнаковыми -- "перенос".
R
Riasoft
это вопрос терминологии. при работе со знаковыми числами за ето отвечает признак "знак". При работе с беззнаковыми -- "перенос".
Ладно, спасибо, буду думать
буду думать
Чотутдумать?
Есть А и В.
Делаешь операцию А-В и смотришь возникновение переноса.
Чтоб получить -В делаешь инверсию В и прибавляешь 1.
Потом суммируешь А и полученное -В.
Выход переноса сумматора и есть ответ.
R
Riasoft
всем спасибо я прозрел))))))
R
Riasoft
тут одни гении сидят)))
Авторизуйтесь, чтобы принять участие в дискуссии.