在 Python 中,与其他编程语言相比,转换元素非常容易。在本教程中,我们将讨论将十六进制字符串转换为十进制字符串的不同方法。
方法 1:通过使用 int()函数
int()函数用于执行这些类型的任务,用户可以在这个函数中添加一个参数(16),用于将十六进制字符串转换为基数 16,同时它会将字符串转换为整数。
示例:
# First, initialize the string
testing_string = 'F'
# then, Print the original string
print ("The Hexadecimal string is: " + str(testing_string))
# now, use the int() function to convert the hexadecimal string to decimal string
convertion = int(testing_string, 16)
# At last, print result
print ("The converted hexadecimal string into decimal string is: " + str(convertion))
输出:
The Hexadecimal string is: F
The converted hexadecimal string into decimal string is: 15
方法 2:通过使用 ast.literal_eval()方法
用户可以使用literal_eval
函数将十六进制字符串转换为十进制字符串。literal_eval
函数可以预测基数,并将数字字符串转换为十进制字符串。
示例:
from ast import literal_eval
# First, initialize the string
testing_string = '0xF'
# then, Print the original string
print ("The Hexadecimal string is: " + str(testing_string))
# now, use the ast.literal_eval() function to convert the hexadecimal string to decimal string
convertion = literal_eval(testing_string)
# At last, print result
print ("The converted hexadecimal string into decimal string is: " + str(convertion))
输出:
The Hexadecimal string is: 0xF
The converted hexadecimal string into decimal string is: 15
方法 3:使用字典
用户可以使用字典将十六进制字符串转换为十进制字符串。他们可以创建一个包含十六进制表的所有预定义值的字典。之后,用户可以应用“for”循环,并将十六进制字符串值转换为十进制字符串格式。
示例:
# Creating the Dictionary
dictionary_hexa_to_decimal = {'0': 0, '1' : 1, '2' : 2, '3' : 3, '4' : 4, '5' : 5, '6' : 6, '7' : 7, '8' : 8, '9' : 9, 'A' : 10 , 'B' : 11, 'C' : 12, 'D' : 13, 'E' : 14, 'F' : 15}
hexadecimal_string = input("Please enter the hexadecimal value: ").strip().upper()
decimal = 0
length = len(hexadecimal_string) -1
for digit in hexadecimal_string:
decimal += dictionary_hexa_to_decimal[digit]*16**length
length -= 1
print ("The converted hexadecimal string into decimal string is: ", decimal)
输入:
Please enter the hexadecimal value: AE
输出:
The converted hexadecimal string into decimal string is: 174
方法 4:通过使用 While
循环
用户可以使用 While
循环将十六进制字符串转换为十进制字符串。首先,用户必须导入十六进制字符串值。然后,他们必须取 3 个变量:“k”、“计数”和“j”,并且都等于“0”。之后,他们必须应用包含所有条件的“while”循环。最后,用户可以检查“k”的值。如果“k”的值等于“0”,用户可以打印“计数”的值;否则,它将是无效的输入。
示例:
hexadecimal_string = input("Please enter the hexadecimal value: ")
k = counts = j = 0
length = len(hexadecimal_string) - 1
while length >= 0:
if hexadecimal_string[length] >= '0' and hexadecimal_string[length] <= '9':
rem_1 = int(hexadecimal_string[length])
elif hexadecimal_string[length] >= 'A' and hexadecimal_string[length] <= 'F':
rem_1 = ord(hexadecimal_string[length]) - 55
elif hexadecimal_string[len]>='a' and hexadecimal_string[len]<='f':
rem_1 = ord(hexadecimal_string[length]) - 87
else:
k = 1
break
counts = counts + (rem * (16 ** j))
length = length - 1
j = j + 1
if k == 0:
print ("\nThe converted hexadecimal string into decimal string is: ", counts)
else:
print ("\nInvalid Input!")
输入:
Please enter the hexadecimal value: AF
输出:
The converted hexadecimal string into decimal string is: 255