Консультации | Алгоритм процедуры сравнения времени в формате hh:mm:ss? |
|
---|---|---|
Здравствуйте всем! Собственно сабж. |
|
|
А зачем переводить в десятичное? Проще сделать по формуле: часы*64*64+минуты*64+секунды. Умножение на 64 - это сдвиг на 6 разрядов, т.е часы<<12+минуты<<6+секунды. Вам ведь нужно только, чтобы было линейное преобразование (т.е. чтобы при нем отношение порядка сохранялось), а будет ли оно с "дырками" или нет - по большому счету наплевать. |
|
|
chav1961: Проще сделать по формуле: часы*64*64+минуты*64+секунды. Да если сделать преобразование на сдвиге влево, так будет работать намного быстрее, и на "дырки" есть они или нет будет || т.к. преобразование и для текущего и для уставки будет одинаковым, но хотелось бы отказаться от этого преобразования вообще, если это конечно возможно и работать непосредственно с регистрами часов и уставки. |
|
|
Кажется придумал как реализоватть процедуру. Сравниваем часы, если Thour>Shour то выходим из процедуры со занчением "больше", Thour<Shour=>"меньше", если заначения "=" то проверяем минуты аналогично часам если и значения минут "=" то проверяем также проверяем секунды. |
|
|
Может я чего-то не понял в условиях задачи, но почему нельзя регистры сравнивать последовательно, начиная со старшего (часов). Если не равны - принимаем решение, если равны - переходим к сравнению минут... и т. д. |
|
|
Да было какое-то локальное помутнение. Текст на asm для 12/16 пиков прилагаю, может кому пригодится. |
|
Форум про радио — сайт, посвященный обсуждению электроники, компьютеров и смежных тем. pro-radio.online | Обратная связь |
© 2003—2025 |