Python进制转换方法_Python自学第十节

2022-12-27 14:40:25 浏览数 (1)

进制转换:

  • 二进制:以0b作为前缀,0b1010
  • 八进制:以0o作为前缀,0o173
  • 十六进制:以0x作为前缀,0x1f

用print()函数直接输出这些带前缀的数据,可以直接转换为十进制数。

代码语言:javascript复制
>>> print(0b1010)   #0*2的0次方 1*2的1次方 0*2的二次方 1*2的3次方=10
10
>>> print(0o173)   #3*8的0次方 7*8的一次方 1*8的二次方=123
123
>>> print(0x1f)   #15*16的0次方 1*16的一次方=31
31

进制转换:

  • bin()函数:将十进制转换为二进制
  • oct()函数:将十进制转换为八进制
  • hex()函数:将十进制转化为十六进制
代码语言:javascript复制
>>> bin(10)
'0b1010'
>>> oct(15)
'0o17'
>>> hex(42)
'0x2a'

int()函数可以将其他进制函数转换成十进制.

语法:int('数值',进制)

代码语言:javascript复制
>>> int(0b101010001)
337
>>> int('101010001',2)
337
第二种方式:被转换的数据必须以字符串的形式进行输入

练习:

题目内容:低频ID卡数据格式转换小常识。将下列16进制串中倒数第5,6位转换为3位十进制数。将最后4位转换为5位十进制卡号,中间用“,”分开。0000944664

代码语言:javascript复制
>>> a[-6:-4]   #结束编号一定要大于起始编号,-4为结尾且不包含-4的值
'94'
>>> int(a[-6:-4],16)   #转化为十进制的3位数
148
>>> a[-4:]   #取值最后4位数
'4664'
>>> int(a[-4:],16)   #转换为十进制的5位数
18020
>>> str(int(a[-6:-4],16))   ','   str(int(a[-4:],16))
'148,18020'

0 人点赞