Aviz
Март 6, 2009 14:02:00
Я читаю данные из бинарного файла со спецефичным форматом. Скажем дата события там, забито в двух байтах в таком виде: 0x03 0x06 (сегоднешняя дата), а продолжительность интересуемого меня события, также в двух байтах но, так что 0x00 0x44, соответствует 68 секундам, а 0x0A 0x1B 2587 секунд (т.е. переводиться, как есть)! Другие значения, нужно брать из старшего и младшего полубайтов.
Решение LL=struct.unpack('24с', f.read(24)) несколько коряво, но через конструкцию hex(ord(LL)) приемлемо. Но, как перевести правильно время?????????????????
Griffon
Март 6, 2009 17:29:39
Не совсем понимаю что надо. Время…
format(0x0A1B) или int(0x0A1B)
format(2587,“#X”) онo же hex(2587)
Aviz
Март 6, 2009 19:50:17
Нужно чтобы int('0x0A1B') срабатывало так же, как и int('121')
Aviz
Март 6, 2009 19:58:00
Другими словами, чтобы строку ‘0A1B’ можно было бы перевести в число типа jnt.
Не понимает мой Питон 25 функции format!
Griffon
Март 6, 2009 20:13:28
int(“0a1b”,16)
Aviz
Март 6, 2009 20:28:59
Да, спасибо, работает)))))
вот еще что нашел eval('0x0A1B')
Cleric
Март 7, 2009 00:26:36
eval нужно использовать только когда это действительно необходимо, вариант предложенный Griffon лучше