进制转换:二进制,十六进制、八进制、十进制
bin 二进制 oct 8进制 hex 十六进制 int 10进制
- 二进制 和十进制
#10进制转二进制
v1 = bin(48)
print(v1)#二进制转10进制
v1 = '0b1010101'
v2 = int(v1, base=2)
- 八进制 和十进制
#10进制转八进制
v1 = oct(48)
print(v1)#八进制转10进制
v1 = '0o2233445'
v2 = int(v1, base=8)
十六进制 和十进制
#10进制转十六进制
v1 = hex(48)
print(v1)#十六进制转10进制
v1 = '0x10abcd10101'
v2 = int(v1, base=16)
-
练习
""" 1、给你一个IP地址,请将IP地址 中的每个进制数字转换成对应二进制 2、继续实现,将结果拼接起来:11000000101010000000101100010111,再将此二进制的字符串转换成10进制整数 """ # 方式1 def ip_switch(ip):data_list = ip.split('.') # 转换为:列表字符串[192.168.11.23]result = []for item in data_list:bin_string = bin(int(item)).replace('0b', '') # 进制转换后为字符串if len(bin_string) % 8 == 0:result.append(bin_string)else:new_bin_string = (("0" * (8 - len(bin_string))) + bin_string)result.append(new_bin_string)return result# 方式2 def ip_switch2(ip):result = []data_list = ip.split('.')for item in data_list:bin_string = bin(int(item))[2:]bin_8_string = bin_string.rjust(8, '0')result.append(bin_8_string)return resultdef main():ip = "192.168.11.23"ip_list = ip_switch2(ip)str_item = ''.join(ip_list) # 将列表中的字符串通过join 进行拼接成一起v2 = int(str_item, base=2)print(v2)main()