【Python学习】进制转换

知识梳理

2进制8进制10进制16进制
2进制-bin(int(n,8))bin(int(n,10))bin(int(n,16))
8进制oct(int(n,2))-oct(int(n,10))oct(int(n,16))
10进制int(n,2)int(n,8)-int(n,16)
16进制hex(int(n,2))hex(int(n,8))hex(int(n,10))-
函数意义
bin()是将十进制的数字转换成二进制的数字。其中bin()函数中传入的是十进制的数字,数据类型为数字类型。
oct()是将十进制的数字转换成八进制的数字。其中oct()函数中传入的是十进制的数字,数据类型为数字类型。
int()是将其他进制的数字转换成十进制的数字。其中int()函数中转入的第一个参数是需要转换的其他进制的字符串形式的数字,第二个参数是第一参数的进制数,也就是说第一个参数传的是多少进制的数字第二个参数就传个多少,数据类型为数字类型。
hex()是将十进制的数字转换成十六进制的数字。其中hex()中需要传入的是十进制的数字,数据类型为数字类型。

使用int()转换
int()类可将数字或字符串转换为整型,调用方法为:

int(x, base=10)

任意字符数字转换为10进制:

print(int('55')==55)    #字符串转换为十进制整型数
print(int(0b11)==3)    #二进制转换为十进制
print(int(0o11)==9)    #八进制转换为十进制
print(int(0x11)==17)    #十六进制转换为十进制

16进制转换为10进制:int(x,16)

x为传入的参数,如:

print(int('aaaa',16)==43690)
print(int('abcdef',16)==11259375)

8进制转换为10进制:int(x,8)

x为传入的参数,如:

print(int('12345670',8)==2739128)
print(int('10',8)==8)

2进制转换为10进制:int(x,2)

x为传入的参数,如:

print(int('10',2)==2)
print(int('11',2)==3)
print(int('100',2)==4)

使用bin(x) ,oct(x) 或hex(x) 转换:

传入的参数可以是2,8,16进制的,输出是字符串形式

bin(x)转换为二进制:

print(bin(0b100)=='0b100')    #二进制转换为二进制
print(bin(0o11)=='0b1001')    #八进制转换为二进制
print(bin(11)=='0b1011')       #十进制转换为二进制
print(bin(0xa1)=='0b10100001')    #十六进制转换为二进制

oct(x)转换为八进制:

print(oct(0b11)=='0o3')    #二进制转换为八进制
print(oct(0o77)=='0o77')    #八进制转换为八进制
print(oct(55)=='0o67')    #十进制转换为八进制
print(oct(0xab)=='0o253')    #十六进制转换为八进制

hex(x)转换为十六进制:

print(hex(0b11)=='0x3')    #二进制转换为十六进制
print(hex(0o11)=='0x9')    #八进制转换为十六进制
print(hex(11)=='0xb')    #十进制转换为十六进制
print(hex(0xaa)=='0xaa')    #十六进制转换为十六进制

使用format() 转换

format(x,'b')         #将x转换为二进制
format(x,'o')         #将x转换为八进制
format(x,'d')         #将x转换为十进制
format(x,'x')         #将x转换为十六进制

x可以是二进制,八进制,十进制,十六进制

format(x,‘b’)转换为二进制

print(format(0b11,'b')=='11')     #二进制转换为二进制
print(format(0o11,'b')=='1001')    #八进制转换为二进制
print(format(11,'b')=='1011')    #十进制转换为二进制
print(format(0x11,'b')=='10001')    #十六进制转换为二进制

format(x,‘o’)转换为八进制

print(format(0b11,'o')=='3')    #二进制转换为八进制
print(format(0o11,'o')=='11')    #八进制转换为八进制
print(format(11,'o')=='13')    #十进制转换为八进制
print(format(0x11,'o')=='21')    #十六进制转换为八进制

format(x,‘d’)转换为十进制

print(format(0b11,'d')=="3")    #二进制转换为十进制
print(format(0o11,'d')=="9")   #八进制转换为十进制
print(format(11,'d')=="11")   #十进制转换为十进制
print(format(0x11,'d')=="17")   #十六进制转换为十进制

format(x,‘x’)转换为十六进制

print(format(0b11,'x')=='3')   #二进制转换为十六进制
print(format(0o11,'x')=='9')   #八进制转换为十六进制
print(format(11,'x')=='b')   #十进制转换为十六进制
print(format(0x11,'x')=='11')   #十六进制转换为十六进制

format 其他类型转换为2进制

操作:在format函数的槽中添加一个b 即可实现其他类型对2进制的转换,下面举例说明

n=input()
print("{:b}".format(int(n,8)))
# 先将8进制的数转换为10进制,
# 然后在format的槽中添加一个b,等价于实现了bin函数的功能
# 但是此结果是不带有0b前缀的

输入:1010
输出:1000001000

format 其他类型转换为8进制:

操作:在format函数的槽中添加一个o 即可实现其他类型对8进制的转换,下面举例说明

n=input()
print("{:o}".format(int(n,16)))
# 先将一个16进制数转换为10进制
# 然后利用format函数格式化数字方法转换即可

输入:a
输出:12

format 其他类型转换为16进制:

操作:在format函数的槽中添加一个x 即可实现其他类型对2进制的转换,下面举例说明

n=input()
print("{:x}".format(int(n,8)))
# 先将一个8进制的数转换为16进制
# 然后原理同上

输入:1010
输出:208

注意:由于转换成10进制本来就是不带前缀的,无需用format格式化数字方法控制

如何打印 1-10的 二进制数 就是8位数字?

for i in range(1,11):
    print(f'{i:08b}')

输出
00000001
00000010
00000011
00000100
00000101
00000110
00000111
00001000
00001001
00001010

  • 19
    点赞
  • 100
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值