四位二进制、十进制、四位十六进制相互转换(高位补零)
四位二进制转十进制
int(i, 2)
十进制转四位二进制
'{:04b}'.format(i)
同理转5位就变成
'{:05b}'.format(i)
十进制转十六进制
hex(i)
十进制转四位十六进制
base = [str(x) for x in range(10)] + [chr(x) for x in range(ord('A'), ord('A') + 6)]
def dec2bin(string_num):
num = int(string_num)
mid = []
while True:
if num == 0: break
num, rem = divmod(num, 2)
mid.append(base[rem])
return ''.join([str(x) for x in mid[::-1]])
def hex2dec(string_num):
return str(int(string_num.upper(), 16))
def hex2bin(string_num):
return dec2bin(hex2dec(string_num.upper()))
def all_hex(str):
g = ''
for i in str:
grti = hex2bin(i)
if (len(grti) < 4):
grti = (4 - len(grti)) * "0" + grti
g = g + grti
return g
all_hex(i)
同理转5位all_hex函数就变成
def all_hex(str):
g = ''
for i in str:
grti = hex2bin(i)
if (len(grti) < 5):
grti = (5 - len(grti)) * "0" + grti
g = g + grti
return g
四位十六进制转十进制
eval(i)