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