MAC地址转换为二进制位

3

我正在尝试转换一个MAC地址,

mac = '00:de:34:ef:2e:f4'  

将其转换为二进制格式。我使用的程序是,

mac = '00:de:34:ef:2e:f4'
r = mac.replace(':', '').decode('hex')  
print r

当我运行这个程序时,输出结果很奇怪,输出为

$Ã$

我做错了什么?


1
打印二进制将会显示为奇怪的字符。 - TJD
当你打印它时,终端(或控制台,或其他什么)会尝试将二进制解释为ASCII字符代码(或者你本地的字符集是什么)... 在这种情况下,它失败了。你希望输出看起来像什么? - Useless
我的输出应该像这样:00111000110100110101101010..... - Justin Carrey
2个回答

12

我认为你不想使用 decode,因为它会执行Unicode转换和其他你不需要的操作。只需执行以下操作:

n = int(mac.replace(':', ''), 16)

这段代码将会把你的mac地址转换成数字。要想将数字以16进制方式打印出来,请使用'%012x'%n

编辑:

如果你想要将数字转换为二进制,只需使用bin(n)即可。


3
如果您想获得mac地址,可以使用以下方法:
":".join(textwrap.wrap("%012x" % (integer), width=2))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接