Python基础:各种进制间的相互转换

在Python中,进制的转换通过Python的内置函数即可实现。下文所说的其他进制指的是二进制、十六进制和八 进制。

一、 相关函数:

str():字符串转换函数
bin():将一个整数转换成2进制字符串
hex():将一个整数转换成16进制字符串
oct():将一个整数转换成8进制字符串

二、十进制转换为其它进制

代码如下:

# 十进制转换到其他进制
int = 10
hex = hex(int)
bin = bin(int)
oct = oct(int)

print('十进制数是:',int)
print(type(int),end='\n\n')
# 十进制数是: 10
# <class 'int'>

print('十六进制数是:',hex)
print(type(hex),end='\n\n')
# 十六进制数是: 0xa
# <class 'str'>

print('二进制数是:',bin)
print(type(bin),end='\n\n')
# 二进制数是: 0b1010
# <class 'str'>

print('八进制数是:',oct)
print(type(oct),end='\n\n')
# 八进制数是: 0o12
# <class 'str'>

注:运用Python内置函数从十进制转换为其他进制,其输出的类型均为str类型,且转换后的值中,hex(),bin(),oct()会自动加上0x,0b,0o前缀。

三、其他进制转换为十进制

其他进制转换为十进制,是上述过程的相反实现。

# 其他进制转换为十进制
a = 1010  #二进制数1010
str = str(a)
print('十进制是:',int(str,2))
print(type(int(str,2)))
# 十进制是: 10
# <class 'int'>

b = 25   #八进制数25
str = str(b)
print('十进制数是:',int(str,8))
print(type(int(str,8)))
# 十进制数是: 21
# <class 'int'>

c = 25   #十六进制数25
str = str(c)
print('十进制数是:',int(str,16))
print(type(int(str,16)))
# 十进制数是: 37
# <class 'int'>

总结:其他进制转换为十进制数,需要借助str()函数,即首先利用str()函数将数字转化为字符串类型,然后再进行转换;转换时,待转数字不应该带有0b,0x,0o前缀,否则转换后将发生错误。

四、其他进制间的相互转换

二进制、八进制、十六进制间的转换可以利用十进制作为桥梁,转换为十进制后再将其转换为其他进制。以二进制转换为十六进制为例,其他进制转换与此相类似:

# 二进制转换为十六进制
num = 1010   #二进制数1010
str = str(num)  #首先转换为str类型
int = int(str,2)  #然后转换为十进制数

print('转换的十进制数是:',int,end='\n\n')

hex = hex(int)    #将十进制数转换为十六进制数
print('转换的十六进制数是:',hex)
# 转换的十进制数是: 10

# 转换的十六进制数是: 0xa

下图为进制转换关系表:
在这里插入图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值