Форум сайта python.su
1
Я читаю данные из бинарного файла со спецефичным форматом. Скажем дата события там, забито в двух байтах в таком виде: 0x03 0x06 (сегоднешняя дата), а продолжительность интересуемого меня события, также в двух байтах но, так что 0x00 0x44, соответствует 68 секундам, а 0x0A 0x1B 2587 секунд (т.е. переводиться, как есть)! Другие значения, нужно брать из старшего и младшего полубайтов.
Решение LL=struct.unpack('24с', f.read(24)) несколько коряво, но через конструкцию hex(ord(LL)) приемлемо. Но, как перевести правильно время?????????????????
Офлайн
11
Не совсем понимаю что надо. Время…
format(0x0A1B) или int(0x0A1B)
format(2587,“#X”) онo же hex(2587)
Отредактировано (Март 6, 2009 17:31:18)
Офлайн
1
Нужно чтобы int('0x0A1B') срабатывало так же, как и int('121')
Офлайн
1
Другими словами, чтобы строку ‘0A1B’ можно было бы перевести в число типа jnt.
Не понимает мой Питон 25 функции format!
Офлайн
11
int(“0a1b”,16)
Офлайн
1
Да, спасибо, работает)))))
вот еще что нашел eval('0x0A1B')
Офлайн
0
eval нужно использовать только когда это действительно необходимо, вариант предложенный Griffon лучше
Офлайн