字符串之间是无法直接进行加法运算的,要先经过转换。
十六进制字符串转换为十进制
int('a',16)
int('0xa',16)
十进制转换为十六进制
hex(10)
'0xa'
十进制转换为字符串
str(12)
'12'
练习:求MAC地址的下一个地址,考虑01 0f结尾的情况。
#!/usr/bin/python
macaddr = '00:16:3E:00:69:0D'
prefix = macaddr[:-2]
last_two = macaddr[-2:]
last_two_int = int(last_two,16)
new_last_two_int = last_two_int + 1
new_last_two = hex(new_last_two_int)
if len(new_last_two) == 3:
new_last_two = '0' + new_last_two[-1:]
else:
new_last_two = new_last_two[-2:]
newmacaddr = prefix + new_last_two
print newmacaddr.upper()