进制转换:二进制,十六进制、八进制、十进制
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 result def 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()