先来看下十六进制的定义以及表示方式,以下是百度百科上的解释:
十六进制(简写为hex或下标16)是一种基数为16的计数系统,是一种逢16进1的进位制。通常用数字0、1、2、3、4、5、6、7、8、9和字母A、B、C、D、E、F(a、b、c、d、e、f)表示,其中:A~F表示10~15,这些称作十六进制数字。
不同电脑系统、编程语言对于16进制数值有不同的表示方式:
C语言、C++、Shell、Python、Java语言及其他相近的语言使用字首“0x”,例如“0x5A3”。开头的“0”令解析器更易辨认数,而“x”则代表十六进制(就如“O”代表八进制)。在“0x”中的“x”可以大写或小写。对于字符量C语言中则以x+两位十六进制数的方式表示,如xFF。
十六进制怎么转换成十进制?
16进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方……
所以,在第N(N从0开始)位上,如果是是数X(0 <= X <= 15,即:F)表示的大小为 X*16的N次方。
例:0xAA换算成十进制:
第0位:A * 16^0 = 10 * 1 = 10
第1位:A * 16^1 = 10 * 16 = 160
所以,十六进制的数0xAA转换成十六进制的数后就等于 10+160 = 170
在python中,自带了十六进制转十进制的库函数:int(string, base = 16)
输出结果如下:
如果不使用python自带的库函数,自己写一个方法来实现十六进制转十进制,该怎么实现呢?
思路同 python实现字符串转int
将0~9, A~F这16个数以字典的方式存储起来,key为字符类型,value为其对应的int类型
dict_ = {'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}
然后用for循环遍历目标字符串,若字符串中的字符不在0~9, A~F这16个数中,那么就无法转成十进制,直接返回False,若字符串中的字符在0~9, A~F这16个数中,说明可以转成十进制,将字典中字符对应的int类型的值取出进行数学计算。
文章来源:https://www.toymoban.com/news/detail-418428.html
运行后结果同上。文章来源地址https://www.toymoban.com/news/detail-418428.html
到了这里,关于python实现十六进制转十进制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!