【python初级】10进制与2进制8进制16进制的转换

【python初级】10进制与2进制8进制16进制的转换

背景

在做串口通信的时候发送的字符串都是16进制编码的。
本博客就介绍10进制与2、8、16进制的相互转换。
10进制是我们生活中默认使用的最常用的数值表示方式。
所谓十进制就是逢10进1(0,1,2,3,4,5,6,7,8,9),
2进制是逢2进1(0,1),
8进制是逢8进1(0,1,2,3,4,5,6,7,),
16进制是逢16进1(0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F)
2、8、16进制的区别,是表示数值的bit最小单位不同,2进制是一个bit位,8进制是3个bit位,计算机非常常用的16进制是4个bit位。

以下是各种进制对应关系:

10进制 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
16进制 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf
8进制 0o0 0o1 0o2 0o3 0o4 0o5 0o6 0o7 0o10 0o11 0o12 0o13 0o14 0o15 0o16 0o17
2进制 0b0 0b01 0b10 0b11 0b100 0b101 0b110 0b111 0b1000 0b1001 0b1010 0b1011 0b1100 0b1101 0b1110 0b1111

代码

在python3中可以使用Python的内置函数进行进制间的转换。
2、8、10、16进制分别涉及以下内置函数。

bin():其他进制转二进制,以'0b'开头,如:0b111为十进制的7;
oct():其他进制转八进制,以'0o'开头,如:0o12为十进制的10;
int():其他进制转十进制。从小到大都学的用的就是十进制,大家很熟悉;
hex():其他进制转十六进制。以'0x'开头,如:0x1f为十进制的31;

其他进制转化成10进制的使用示例:

# 八进制转十进制
print(int('10010537',8)) # 输出10进制数字:2101599
print(int(0o10010537))   # 输出10进制数字:2101599

# 十六进制转十进制
print(int('16',16)) # 输出10进制数字:22
print(int(0x16))   # 输出10进制数字:22

# 二进制转十进制
print(int('1111',2)) # 输出10进制数字:15
print(int(0b1111))   # 输出10进制数字:15

其他进制转2进制:

# 八进制转2进制
print(bin(int('10',8)))# 输出2进制数字:0b1000
print(bin(0o10)) # 输出2进制数字:0b1000

# 16进制转2进制
print(bin(int('1f',16))) # 输出2进制数字:0b11111
print(bin(0x1f))         # 输出2进制数字:0b11111

# 10进制转2进制
print(bin(8)) # 输出2进制数字:0b1000

其他进制转16进制:

# 八进制转16进制
print(hex(int('10',8)))# 输出16进制数字:0x8
print(hex(0o10)) # 输出16进制数字:0x8

# 2进制转16进制
print(hex(int('100',2))) # 输出16进制数字:0x4
print(hex(0b100))        # 输出16进制数字:0x4

# 10进制转16进制
print(hex(15)) # 输出16进制数字:0xf

猜你喜欢

转载自blog.csdn.net/jn10010537/article/details/128274060