【发布时间】:2020-01-21 18:40:24
【问题描述】:
我阅读了许多关于在 SO 中将十六进制转换为二进制的答案。我尝试用 md5 实现它:
import hashlib
c = hashlib.md5("123hello123".encode('ascii'))
print(c.hexdigest())
for _hex in c.hexdigest():
_hex = int(_hex, 16)
print(bin(_hex)[2:], end="")
我得到输出:
b303fa684382db471658016690101792 1011110111111101011010001001110001011011011100111111010110000111011010010101111100110
当我在在线转换器中转换时,我得到了什么:
10110011000000111111101001101000010000111000000000000000000000000000000000000000000000000000000000000000000000
正确答案是什么?我应该如何纠正我的程序?
【问题讨论】:
-
你用的是什么在线转换器?
-
您需要将每个十六进制数字的二进制表示填充为 4 个字符。
-
两个这些结果看起来都错了。您从转换器获得的转换为
b303fa684382d8000000000000000000。