python中进制转换及IP地址转换

各进制之间转换:

1 # 转二进制用bin(int(x,n))        #用几进制转换n就是几
2 # 转八进制用oct(int(x,n))        #x位置放现有进制字符串
3 # 转十进制用int(x,n)
4 # 转十六进制用hex(int(x,n))

十进制转二进制IP:

1 def convert(n):
2     a = n.split(".")
3     lst = []
4     for i in a:
5         two = bin(int(i,10)).lstrip("0b")         #十进制转换成二进制,并去掉开头的0和b,,(根据需要)
6         lst.append(two.zfill(8))                  #十进制添加到列表,不足处用0补位
7     return " ".join(lst)                          #把列表用" "连接起来
8 print(convert("102.3.9.129"))

结果对照:

1 01100110 00000011 00001001 10000001

二进制转十进制IP:

1 def convert(n):
2     a = n.split(" ")
3     lst = []
4     for i in a:
5         lst.append(str(int(i, 2)))                #将二进制转换成十进制,并添加到列表
6     return ".".join(lst)                          #把列表用"."连接起来
7 print(convert("01100110 00000011 00001001 10000001"))

结果对照:

1 102.3.9.129
原文地址:https://www.cnblogs.com/NoteBook3013/p/10241754.html