hex()
python中的函数将前导字符0x
放在数字的前面.无论如何要告诉它不要把它们放?所以0xfa230
会fa230
.
代码是
import fileinput
f = open('hexa', 'w')
for line in fileinput.input(['pattern0.txt']):
f.write(hex(int(line)))
f.write('\n')
Run Code Online (Sandbox Code Playgroud)
jam*_*lak 154
>>> format(3735928559, 'x')
'deadbeef'
Run Code Online (Sandbox Code Playgroud)
eum*_*iro 50
使用此代码:
'{:x}'.format(int(line))
Run Code Online (Sandbox Code Playgroud)
它允许您指定一些数字:
'{:06x}'.format(123)
# '00007b'
Run Code Online (Sandbox Code Playgroud)
对于Python 2.6使用
'{0:x}'.format(int(line))
Run Code Online (Sandbox Code Playgroud)
要么
'{0:06x}'.format(int(line))
Run Code Online (Sandbox Code Playgroud)
Gui*_*tre 12
你可以简单地写
hex(x)[2:]
Run Code Online (Sandbox Code Playgroud)
删除前两个字符.
旧样式的字符串格式:
In [3]: "%02x" % 127
Out[3]: '7f'
Run Code Online (Sandbox Code Playgroud)
新风格
In [7]: '{:x}'.format(127)
Out[7]: '7f'
Run Code Online (Sandbox Code Playgroud)
使用大写字母作为格式字符会产生大写十六进制
In [8]: '{:X}'.format(127)
Out[8]: '7F'
Run Code Online (Sandbox Code Playgroud)
文件在这里。
'x'
- 输出以 16 为基数的数字,9 以上的数字使用小写字母。
>>> format(3735928559, 'x')
'deadbeef'
Run Code Online (Sandbox Code Playgroud)
'X'
- 输出以 16 为基数的数字,9 以上的数字使用大写字母。
>>> format(3735928559, 'X')
'DEADBEEF'
Run Code Online (Sandbox Code Playgroud)
您可以在 Python 文档中找到更多相关信息:
Python 3 的格式化文字字符串(f 字符串)支持格式规范迷你语言,它指定x
十六进制数字。输出不包括0x
.
所以你可以这样做:
\n>>> f"{3735928559:x}"\n\'deadbeef\'\n
Run Code Online (Sandbox Code Playgroud)\n请参阅其他基数的规范,例如二进制、八进制等。
\nstr.removeprefix
从Python 3.9开始,现在有一种str.removeprefix
方法,它允许你编写以下更明显的代码:
>>> hexadecimal = hex(3735928559)\n>>> hexadecimal.removeprefix(\'0x\')\n\'deadbeef\'\n
Run Code Online (Sandbox Code Playgroud)\n但这对于负数 \xe2\x9d\x8c 不起作用:
\n>>> negadecimal = hex(-3735928559)\n>>> negadecimal.removeprefix(\'0x\')\n\'-0xdeadbeef\'\n
Run Code Online (Sandbox Code Playgroud)\n