我有一些用十六进制表示数字的字符串,我想把它转换成base-64。我如何做到这一点,这个建议是如何工作的?因为我需要了解它的工作原理。你知道吗
我想到的第一件事是(我是一个noob)实现一个简单的算法,它可以像处理纸和笔一样工作,尽管我认为Python有这种“内置”的东西。你知道吗
我可以通过在互联网上搜索实现这一点,但我需要了解它是如何工作的。你知道吗
一些示例问题可以让您了解我需要的解释:
b'...'
类型的字符串,请您解释一下它们是什么,b64encode()
为什么似乎只接受这种类型的对象作为参数?你知道吗int()
只适用于base-36,我通常如何处理不同base之间的转换,如果您的解决方案涉及到这个函数,您能给出进一步的解释吗?你知道吗如果有人能给我一些建议。我无法从文档中提取太多信息,因为这类知识似乎已经在意料之中了。你知道吗
谢谢。你知道吗
下面的代码将引导您完成从十六进制字符串到b64编码字符串的转换过程。你知道吗
输出:
一些(冗长的)解释:我们从字符串中的十六进制开始,没有什么特别的,
int
将它与基一起转换成一个正则整数x
。对python来说x
是一组表示数字的位,大多数情况下都是以10为基数打印的。我们可以使用x.to_bytes
请求位表示。结果是一个字节序列,将以b'...'
的形式打印。注意,如果给定的字节与ascii字符没有关联,打印过程会自动尝试将字节转换为ascii字符或类似\xab
的内容。因此,我们将字节馈送到b64encode
,它通常用于处理文件,因此需要字节对象,它将一个ascii字符串作为字节对象。对于这个结果,相反的过程是类似的:b64ascii string->;二进制字节数->;hex->;int假设输入为“aaccffdde5e5ff”
b'...'
只是一个bytestring,您可以使用它将普通unicode字符串编码为字节as_bytes = u'hello world'.encode('utf-8')
要处理到base10的任意基转换,请参阅本教程
http://mathbits.com/MathBits/CompSci/Introduction/tobase10.htm
下面是一个函数,用于将任何字母表中的任何字符串转换为十进制10
相关问题 更多 >
编程相关推荐