Алгоритм сравнения двух чисел в двоичной системе(

Добрый день всем, не хватает у меня ума, нужен алгоритм сравнения двух чисел заданных в двоичной системе исчисления, и чтобы его можно было реализовать с помощью обычных логических элементов (и, или, нет), уже везде искал, толком ни чего не нашел
0
demiurg_ii
Сколько разрядов? Предлагаю АЦЦКЕЙ калхоз:
Два дешифратора, и длиинная линейка елементов И-НЕ, :-)
0
Дыть одно число инвертируешь, прибавляешь единицу, прибавляешь другое и смотришь переполнение
0
Riasoft
два 32битных числа на входе) на выходе 1 если А<Б, или О если A>B,
мне без разницы какой будет размер алгоритма, все запихиваю в Max+Plus II))))))))
0
Чо туд?
Почему DDD не предложил вколхозить PIC?
0
Riasoft
От пользователя Кот Матроскин TM
Чо туд?
Почему DDD не предложил вколхозить PIC?


это точно отпадает, потому что тот самый PIC и разрабатывается :cool:
0
От пользователя Кот Матроскин TM
Почему DDD не предложил вколхозить PIC?

Потомушто аффтар аппаратно на логике просит. Он недавно сумматоры изучал - вот ему в акурат про эти суматоры и задача.
0
demiurg_ii
А можно и PIC :-) Свободно распространяемые прошивки ядра PIC для плисин есть у нас?
0
От пользователя Riasoft
это точно отпадает,
потому что тот самый PIC и разрабатывается


Так ПЛИС или PIC????

Хотя трите тут без меня. Не встречваю. Просто не понимаю кто за это будет платить..а такбы я разобрался..:-)...
0 / 3
От пользователя Кот Матроскин TM
не понимаю кто за это будет платить..а такбы я разобрался..

:lol:
4 / 0
Riasoft
Вот что я реализовал пока в ПЛИСе,
свой 32разрядный цпу, только ему не хватает операций сравнения двух чисел

riasoft.narod.ru/cpu105.jpg (ахтунг разрешение 10000х10000)

(АЛУ, 4 регистра, блок управления копированием регистров, блок управления процессором идет отдельно)
0
demiurg_ii
От пользователя Riasoft
сравнение двух чисел

= вычитание без записи результата. только там признаков существенно больше формируется: минимум для приличного процессора -- знак, ноль, перенос.
0
Riasoft
все разработано в Мах+pluss II, с использованием стандартных логических элементов и, или , нет))

так что я медленно двигаюсь к цели
0
Riasoft
От пользователя demiurg_ii
= вычитание без записи результата. только там признаков существенно больше формируется: минимум для приличного процессора -- знак, ноль, перенос.


попроще , на пальцах можно, я только недавно узнал как вычитание реализовать с помощью сложения ( А - B = A + not B !+1, единица добавляется в начале сложения), собственно вычитание то же пока не реализованно
0
От пользователя demiurg_ii
знак, ноль, перенос.

знак и перенос - это одно и тоже :-D
0
От пользователя Riasoft
попроще , на пальцах можно,


От пользователя ddd[гость]
одно число инвертируешь, прибавляешь единицу, прибавляешь другое и смотришь переполнение

Реализуецо 2 сумматорами. Аппаратно. Без алгоритма.
0
demiurg_ii
От пользователя ddd[гость]
это одно и тоже

не-а. Знак - тупо копия самого верхнего разряда, а перенос -- тупо значение следующего за ним виртуального, который перед операцией обнуляется и из которого при необходимости занимают. ноль -- это тоже тупо "или-не" по всем разрядам результата. :-).

[Сообщение изменено пользователем 28.01.2012 19:25]
0
От пользователя demiurg_ii
не-а

Ну так та да, конечно. Но применительно к арифметике с разрядностью на 1 меньше, чем алу проца - монопенисуально получаецо.
0
Riasoft
От пользователя ddd[гость]
одно число инвертируешь, прибавляешь единицу, прибавляешь другое и смотришь переполнение

Реализуецо 2 сумматорами. Аппаратно. Без алгоритма.



это проверка их на равенство, а как узнать что A<B или A>B?
0
От пользователя Riasoft
а как узнать что A<B или A>B?


От пользователя Riasoft
смотришь переполнение

:vis:
0
demiurg_ii
От пользователя Riasoft
а как узнать что A<B или A>B?

это вопрос терминологии. при работе со знаковыми числами за ето отвечает признак "знак". При работе с беззнаковыми -- "перенос".
0
Riasoft
От пользователя demiurg_ii
это вопрос терминологии. при работе со знаковыми числами за ето отвечает признак "знак". При работе с беззнаковыми -- "перенос".


Ладно, спасибо, буду думать :-o
0
От пользователя Riasoft
буду думать

Чотутдумать?
Есть А и В.
Делаешь операцию А-В и смотришь возникновение переноса.
Чтоб получить -В делаешь инверсию В и прибавляешь 1.
Потом суммируешь А и полученное -В.
Выход переноса сумматора и есть ответ.
0
Riasoft
всем спасибо я прозрел))))))
0
Riasoft
тут одни гении сидят)))
0
Авторизуйтесь, чтобы принять участие в дискуссии.