Это полностью зависит от того, для чего вы используете временную метку. Вы упомянули Ethernet, поэтому одно очевидное использование, которое я могу себе представить, - это заказ пакетов. И в этом случае все, что вам действительно нужно, это счетчик. Вместо вашей отметки времени о том, что «этот пакет был отправлен 14 мая в 14:35», он может просто сказать «это 4023-й пакет».
Если вам нужно записать фактическое время на часах, вам просто нужно выбрать, какие его части актуальны. 16 битов дают 65536 значений для игры. Вы хотите, чтобы те представляли секунды? Тогда ваши временные метки будут меняться каждые 18 часов.
Или они могут быть минутами. Тогда пройдет 45 дней, прежде чем они обернутся. Или дни, или микросекунды, все зависит от того, что вам нужно.
Но единственный способ преобразовать 64-битное значение в 16-битное - это удалить 48 бит данных. Вы выбираете, какие из них