Форум: "Потрепаться";
Текущий архив: 2004.01.29;
Скачать: [xml.tar.bz2];
ВнизСравнение чисел Найти похожие ветки
← →
CyberFreak (2004-01-08 14:19) [0]Вопрос ваще не по Delphi, уж извините, но действительно надо ОЧЕНЬ срочно, а более живых форумов в голову чо-то не приходит. Нужен алгоритм сравнения двух ДРОБНЫХ чисел СО ЗНАКОМ в ДОПОЛНИТЕЛЬНОМ коде (числа 4-хразрядные, старший разряд - знаковый). Результат должен выглядеть так: 0-операнды равны, 1-первый операнд меньше второго операнда, 2-первый операнд больше второго операнда. Подскажите хоть в каком направлении думать, или ссылочи подкиньте. Я се уже весь мозг свернул, а ничего дельного не придумывается :(
Заранее благодарен.
← →
TUser (2004-01-08 14:24) [1]Сравниваешь первые разряды - если не получилось - вторые и т.д.
А что значит "в дополнительном коде"?
← →
Плохиш_ (2004-01-08 14:24) [2]
> ДРОБНЫХ чисел СО ЗНАКОМ в ДОПОЛНИТЕЛЬНОМ коде
Без понятия что это такое :-(
if x1<x2 then r:= 1
else if x1>x2 then r:=2
else r:=0
← →
Ega23 (2004-01-08 14:30) [3]Я так понимаю, что сущствует что-то вроде собственного типа, например:
TDouble64=record
Double1:Integer;
Double2:Cardinal;
end;
ВDouble1
определён знак числа и его целая часть, вDoubl2
- всё, что после запятой, так?
← →
CyberFreak (2004-01-08 14:39) [4]> Ega23
Нет, я же говорю - вопрос ваще не по Delphi. Хотя и на Delphi можно реализовать.
Есть два числа в дополнительном коде. Надо их сравнить, при том, что нам доступны тока логические (поразрядные) операции, т.е. лог. "И", лог. "ИЛИ", инвертирование, сложение по модулю два и т.п.
← →
hexone (2004-01-08 14:40) [5]Сначала по знаку сравниваешь.
1) Соответственно если оба положительные, то они в прямом коде - сравниваешь как 3-х разрядные числа.
2) Если отрицательное хотябы одно получаешь обратный код добавляешь единицу, считаешь, что оно с отрицательным знаком далее пункт 1.
← →
CyberFreak (2004-01-08 14:53) [6]> hexone
Если 2) то там уже понятно, что они не равны, а какое больше, какое меньше в этом случае, я представляю как определить. Мне не понятно, как именно сравнить остальные разряды, и как быть в случае, если оба числа отрицательные. Т.е. для себя я понимаю, как это происходит, но мне надо процессор спроектировать, соответственно нужна либо какая-нить законченная логическая функция, которая в итоге дает результат, либо что-то типа конструкторского решения на базе микросхем (сумматоры, мультиплексоры, регистры и прочая муть). Ссылкам тоже буду очень рад.
← →
CyberFreak (2004-01-08 15:46) [7]Понятно... можно уже вешаться
← →
raidan (2004-01-08 15:55) [8]Удалено модератором
← →
raidan (2004-01-08 16:02) [9]Ладно :)))
Скажу приличными словами: сейчас попробую что-нибудь придумать.
← →
Ega23 (2004-01-08 16:03) [10]
> raidan © (08.01.04 16:02) [9]
;-))
← →
raidan (2004-01-08 16:04) [11]Если ты проектируешь МП, то вам должны были объяснять, что такое вентили, горизонтальное УУ и переход по условию?
← →
Dimman1 (2004-01-08 16:08) [12]hexone дело говорит:)
Ну а если процессор проектировать, то может, например, использовать сдвиговые регистры для побитового сравнения....
Я когда учился, мы тоже процессор делали :)), да забыл уж все напрочь. Поищи лекции по дискретной математике, булевой алгебре и т.п. :))
← →
CyberFreak (2004-01-08 16:24) [13]> raidan
Мы пока тока БО проектирум, УУ еще предстоит... с УУ я тоже к вам сюда на форум приду :)
> Dimman1
А ты где учился, если не секрет?
← →
Dimman1 (2004-01-08 16:32) [14]ВГУ, специальность 220100 - Вычислительны машины, комплексы, системы, сети
← →
Dimman1 (2004-01-08 16:44) [15]А вообще то, если ты процессор разрабатываешь, то личше использовать (нарисовать на схеме:)) ALU - "арифметико-логическое устройство", которое всей этой фигней занимается.
(АЛУ <> процессор)
← →
uw (2004-01-08 16:57) [16]Чтобы получить противоположное число в дополнительном коде, нужно проинвертировать все биты и прибавить 1, Ясно, что если теперь сложить два таких числа, то получишь нули во всех разрядах и перенос.
Теперь насчет сравнения. Вычитай одно из другого (или складывай первое с противоположным числом второго) и анализируй знаковый бит и бит преноса. Всего 4 варианта. А равенство и так понятно.
← →
raidan (2004-01-08 17:00) [17]Удалено модератором
← →
марсианин (2004-01-08 21:06) [18]что значит дробные 4-х разрядные числа? 4-х битные чтоль?
и какие числа: с плавающей или фиксированной запятой? если с фиксированной (ибо не представляю как 4х битное число может быть с плавающей запятой), то про запятую можно совсем забыть, работать как с целыми
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2004.01.29;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.007 c