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

От пользователя Riasoft
я прозрел

Котэ пятикатку на мобилу закинь :ultra:
2 / 0
demiurg_ii
..10 раз :ultra:
:-d

[Сообщение изменено пользователем 28.01.2012 19:37]
2 / 0
Мoзгoпрaв и мoзгoвeд©
От пользователя Riasoft
вычитание реализовать

а ну кыш учить дискретную математику...

От пользователя Riasoft
A<B или A>B?

собсно вычесть одно из другого если перенос то Б больше а, иначе... :-D
0
Мoзгoпрaв и мoзгoвeд©
От пользователя demiurg_ii
10 раз

не так 7 тр не получица :-D
1 / 0
Riasoft
От пользователя Мoзгoпрaв и мoзгoвeд?


уже все понял))
0
От пользователя Riasoft
уже все понял))

Там чтобы понять больше или меньше - надо ещё равно отсечь. Ибо перенос означает только больше, а его отсутствие - меньше или равно. ;-)
0
Riasoft
уже делаю)
0
Riasoft
http://photo.reborn.ru/?sectionid=496&a=watch&b=or...

Блок сравнения чисел,
если A<B выдает 1 (001)
если A=B выдает 2 (010)
если A>B выдает 4 (100)

вдруг кому интересно :beach:
0
demiurg_ii
1) Знаковый бит так и не попал в признаки результата
2) Это какие такие два числа надо сравнить, чтобы одновременно получить 0 в разности и перенос в признаках? ;-)
0
Riasoft
От пользователя demiurg_ii


я исходил из следующего
если А=B тогда будут все 32разряда превратятся в единицу,
если A<B тогда будет переполнение разрядов,

к сумме А и нот В я не прибавлял единицу,

потом я воспользовался СНДФ, и получил на выходе такое

Условие С1 С2 переход к Х1 Х2 Х3
А<В 0 0 1 0 0
А=B 1 0 0 1 0
A>B 0 1 0 0 1

в общем проверил в анализаторе, все работает
0
demiurg_ii
Ясно. Тогда стоит начать делать версию 2.0 сумматора АЛУ. Есть такая операция "сложение с переносом", которая учитывает состояние признака переноса от предыдущей операции. Очень удобна для сложения многоразрядных чисел и получения сумм длинных рядов.

Соответственно, один из входов сумматора должен быть 33-разрядным, а перенос -- элементом с памятью. :-)
0
Riasoft
От пользователя demiurg_ii
Ясно. Тогда стоит начать делать версию 2.0 сумматора АЛУ. Есть такая операция "сложение с переносом", которая учитывает состояние признака переноса от предыдущей операции. Очень удобна для сложения многоразрядных чисел и получения сумм длинных рядов.



если ты внимательно посмотришь на картинку, то увидешь что АЛУ у меня так и реализован,т.е. один из входов его 33битный, просто для реализации блока сравнения на него повешена земля (GND), т.е. логический ноль :-o
0
demiurg_ii
От пользователя Riasoft
для реализации блока сравнения

всю схему не четал, но осуждаю :-d
Я думал, там будет один сумматор и на сложение/вычитание и на сравнение. ИМХО, так будет удобнее делать программки вида
Исходник:
CMP AX, DX;   сравнение
SBC CX, 0;    если AX < DX, CX уменьшаем
JZ ...
0
Riasoft
От пользователя demiurg_ii
Цитата:
От пользователя: Riasoft

для реализации блока сравнения

всю схему не четал, но осуждаю :-D
Я думал, там будет один сумматор и на сложение/вычитание и на сравнение. ИМХО, так будет удобнее делать программки вида
Исходник:

CMP AX, DX; сравнение
SBC CX, 0; если AX < DX, CX уменьшаем
JZ ...


блок сравнения и вычитатель будет общий, это я сейчас делаю,
потом его попробую объединить с сумматором в АЛУ))

я же не профессионал, мне нужно постепенно все схемы отрабатывать, да это много времени тратиться, НО обучаюсь и двигаюсь к намеченной цели)
0
От пользователя demiurg_ii
.10 раз

:weep: котэ издеваецо над моими маркетинговыми ходами
0
Авторизуйтесь, чтобы принять участие в дискуссии.