如何将我的 3 位十进制消息从 str 转换为 int?我试过 print(int(list1))
,但出现错误 invalid literal for int() with base 10: '136 462 380 542 525 933 949 347 185 849 942 359 177'
这是我的代码
def hex_to_decimal(hex_str):
decimal_number = int(hex_str, 16)
return decimal_number
Message = "66a9b2d0b1baf7932416c65a28af3c89"
print("Hexa message: ", s)
decimal = hex_to_decimal(s)
print("Decimal message: ", decimal)
#Divide decimal message into 3 digits
n = 3
list = [str(decimal)[i:i+n] for i in range(0, len(str(decimal)), n)]
list1 = ' '.join(list)
print('Decimal message in 3 digits: ', list1 )
print(type(list1))
print(int(list1))
答案 0 :(得分:0)
您可以使用 sliced 按字符数分割字符串。
from more_itertools import sliced
def hex_to_decimal(hex_str):
decimal_number = int(hex_str, 16)
return decimal_number
Message = "66a9b2d0b1baf7932416c65a28af3c89"
print("Hexa message: ", s)
decimal = hex_to_decimal(s)
print("Decimal message: ", decimal)
#Divide decimal message into 3 digits
n = 3
list_ = list(sliced(str(decimal), n))
list1 = ' '.join(list_)
print('Decimal message in 3 digits: ', list1 )
print(type(list1))
print(int(''.join(list1)))
注意您面临的错误,是因为您要将 sting 列表转换为 int,但首先您需要将它们连接在一起形成一个数字,然后使用 int 转换选项