2016-03-15 3 views
0

Читаю четыре байта из файла Я хотел бы присоединиться к нимКак присоединиться шестнадцатеричные значения

g = f.read(60) 
f.seek (60) 
k60 =f.read(1) 
print('byte60',k60) 
k61 =f.read(1) 
print('byte61',k61) 
k62 =f.read(1) 
print('byte62',k62) 
k63 =f.read(1) 
print('byte63',k63) 
print(k63,k62,k61,k60) 
print (b''.join([k63,k62,k61,k60])) 

Результат будет:

b'\x00\x00\x00\x80' 

Я хотел бы получать:

00000080 
+0

Возможный дубликат [Побитовая операция и использование] (http://stackoverflow.com/questions/1746613/bitwise-operation-and-usage) – Plouff

+0

Нет, это не так, я не хочу суммировать их, но их следующий из каждого другие без "\ x" –

+0

Дайте нам свой входной файл и результаты 'print ('byte6x', k6x)'. – Plouff

ответ

0

Чтобы преобразовать строку байта в шестнадцатеричное представление, вы можете использовать метод hexlify() из binascii модуль:

>>> from binascii import hexlify 
>>> ... 
>>> raw = b''.join([k63,k62,k61,k60]) 
>>> print(hexlify(raw)) 
b'00000080' 
>>> print(hexlify(raw).decode('ascii') # if you want to convert it to a string 
00000080 

То же самое может быть достигнуто с помощью codecs.encode(raw, 'hex').

Смежные вопросы