在 Python 中获取没有 0x 的十六进制表示

在 Python 中获取不带 0x 的十六进制表示

Get hex representation without 0x in Python

使用格式化的字符串文字来获取不带 的值的十六进制表示形式0x,例如result = f'{my_int:x}'格式化的字符串文字将在没有0x前缀的情况下将值格式化为十六进制。

主程序
my_int = 2468 # ✅ Get hex representation of integer without 0x result = f'{my_int:x}' print(result) # 👉️ 9a4 # ------------------------------------------ # ✅ Fixed length of 2 digits with zero left-filling if necessary my_int = 12 result = f'{my_int:02x}' print(result) # 👉️ 0c # ------------------------------------------ # ✅ Convert list of integers to hexadecimal string without 0x my_list = [7, 11, 49, 75, 188, 111] result = ''.join(f'{num:02x}' for num in my_list) print(result) # 👉️ 070b314bbc6f # ------------------------------------------ # ✅ Convert string to hex without 0x my_str = 'hello' result = ' '.join(f'{ord(char):x}' for char in my_str) print(result) # 👉️ 68 65 6c 6c 6f # ------------------------------------------ # ✅ Convert bytes to hex without 0x my_bytes = b'\x61\x70\x6c\x65' result = my_bytes.hex() print(result) # 👉️ 61706c65

第一个示例使用格式化字符串文字来获取不带0x前缀的整数的十六进制表示形式。

主程序
my_int = 2468 result = f'{my_int:x}' print(result) # 👉️ 9a4

格式化字符串文字 (f-strings) 让我们通过在字符串前加上f.

x冒号后面的字符代表十六进制格式它以 16 进制输出冒号前的数字,9 以上的数字使用小写字母。

如果需要获取固定长度为 N 的整数的十六进制表示,可以使用相同的方法。

主程序
my_int = 12 result = f'{my_int:02x}' print(result) # 👉️ 0c

:02x语法用于用前导零填充每个值到固定宽度 2。

如果需要将整数列表转换为不带0x前缀的十六进制字符串,则可以使用生成器表达式。

主程序
my_list = [7, 11, 49, 75, 188, 111] result = ''.join(f'{num:02x}' for num in my_list) print(result) # 👉️ 070b314bbc6f
生成器表达式用于对每个元素执行某些操作或选择满足条件的元素子集。

在每次迭代中,我们使用格式化字符串文字将当前整数转换为不带0x前缀的十六进制。

您可以使用相同的方法将字符串转换为不带0x
前缀的十六进制。

主程序
my_str = 'hello' result = ' '.join(f'{ord(char):x}' for char in my_str) print(result) # 👉️ 68 65 6c 6c 6f

在每次迭代中,我们将当前字符传递给ord()函数以获取相应的 Unicode 代码点。

主程序
print(ord('a')) # 👉️ 97 print(ord('b')) # 👉️ 98

ord函数接受一个表示 1 个 Unicode 字符的字符串,并返回一个表示给定字符的 Unicode 代码点的整数

我们使用空格分隔符连接结果,但您可以使用任何其他值。

str.join方法将一个可迭代对象作为参数并返回一个字符串,该字符串是可迭代对象中字符串的串联。

调用该方法的字符串用作元素之间的分隔符。

如果需要将字节对象转换为十六进制,请使用该bytes.hex()方法。

主程序
my_bytes = b'\x61\x70\x6c\x65' result = my_bytes.hex() print(result) # 👉️ 61706c65

bytes.hex方法
返回一个字符串,每个字节包含两个十六进制数字。

发表评论