Кодирование даты-времени, ищу ключ к протоколу обмена - C#
Формулировка задачи:
Привет,
есть программа которая общается с сервером. Пытаюсь пропарсить протокол.
Есть последовательность байт, которая однозначно соответствует дате-времени.
8A B8 CC A1 F2 56 означает 20:00:00
C6 C6 C9 A1 F2 56 означает 19:59:36
Последний байт 56 точно соответствует 2017 году, так как в прошлом году здесь проходил байт 55.
Нужно выудить время. Уже голову сломал, помогите пожалуйста!!!
Решение задачи: «Кодирование даты-времени, ищу ключ к протоколу обмена»
textual
Листинг программы
static ulong decode_unsigned_varint(byte[] data, out int decoded_bytes) { int i = 0; ulong decoded_value = 0; int shift_amount = 0; do { decoded_value |= (ulong)(data[i] & 0x7F) << shift_amount; shift_amount += 7; } while ((data[i++] & 0x80) != 0); decoded_bytes = i; return decoded_value; } // len == 6, val = 2986109432486 ulong val = decode_unsigned_varint(new byte[] { 0xA6, 0xE5, 0xF7, 0x8F, 0xF4, 0x56 }, out int len); // 1493054716 = Monday, 24-Apr-17 17:25:16 UTC ulong time = val / 1000 / 2;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д