[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
Имеется 4 байта времени в UNIX-формате (секунды). Требуется получить текущую минуту и секунду отдельными значениями. С ходу напрашиваются 2 варианта.
Если поделить 4 байта времени на 3600 (2 байта), то в остатке получим секунды.
Другой вариант - определить три константы (например, 180 дней, 12 часов и 1 час) и вычитанием в цикле сначала первой, затем второй, затем третьей, прийти к тому же результату. Естественно, время с 70-го года не требуется, достаточно с 2002-го, поэтому можно сразу привести к 2001 или 2002 году, что уменьшит число вычитаний.
Весь вопрос в том, что на ассемблере (51-й МК) делить 4 байта на 2 байта неинтересно, а вычитать долго и становится ещё дольше с течением времени. Может, кто-то подскажет более оптимальное решение?
ВременнЫе и ресурсные затраты критичны.
E-mail: info@telesys.ru