hex()
Funkcja w Pythonie, kładzie wiodące znaki 0x
przed numerem. Czy w ogóle można powiedzieć, że NIE ma ich umieszczać? Tak 0xfa230
będzie fa230
.
Kod to
import fileinput
f = open('hexa', 'w')
for line in fileinput.input(['pattern0.txt']):
f.write(hex(int(line)))
f.write('\n')
0x
.Odpowiedzi:
>>> format(3735928559, 'x') 'deadbeef'
źródło
deadbeef
przykład. Iformat()
to najlepszy sposób na zrobienie tego.Użyj tego kodu:
'{:x}'.format(int(line))
pozwala również na podanie liczby cyfr:
'{:06x}'.format(123) # '00007b'
W przypadku Pythona 2.6 użyj
'{0:x}'.format(int(line))
lub
'{0:06x}'.format(int(line))
źródło
format()
funkcji jest łatwiejsze, nie używasz żadnej funkcji tworzenia szablonów, a jedynie formatowanie. Jeśli wszystko zawiera szablon jest{:..}
dla jednej wartości, przejść doformat(value, '..')
zamiast.f.write('{:x}'.format(hex(int(line))))
, mówiValueError: zero length field name in format
format
potrzebuje int, a nie string:f.write('{:x}'.format(int(line)))
Możesz po prostu napisać
hex(x)[2:]
aby usunąć pierwsze dwa znaki.
źródło
>>> hex(3735928559)[2:]
'deadbeefL'
x
jest ujemne.Python 3.6+:
>>> i = 240 >>> f'{i:02x}' 'f0'
źródło
Formatowanie ciągów w starym stylu:
In [3]: "%02x" % 127 Out[3]: '7f'
Nowy styl
In [7]: '{:x}'.format(127) Out[7]: '7f'
Użycie wielkich liter jako znaków formatu daje wielkie litery szesnastkowe
In [8]: '{:X}'.format(127) Out[8]: '7F'
Dokumenty są tutaj.
źródło