擅长:python、mysql、java
<p>下面的代码将引导您完成从十六进制字符串到b64编码字符串的转换过程。你知道吗</p>
<pre><code>import base64
x=int('0xABCDEF01',base=16)
print("x : ",x)
b=x.to_bytes(length=4,byteorder='big')
print("b : ",b)
e=base64.b64encode(b)
print("e : ",e)
b2=base64.b64decode(e)
print("b2 : ",int(b2.hex(),base=16))
</code></pre>
<p>输出:</p>
<pre><code>x : 2882400001
b : b'\xab\xcd\xef\x01'
e : b'q83vAQ=='
b2 : 2882400001
</code></pre>
<p>一些(冗长的)解释:我们从字符串中的十六进制开始,没有什么特别的,<code>int</code>将它与基一起转换成一个正则整数<code>x</code>。对python来说<code>x</code>是一组表示数字的位,大多数情况下都是以10为基数打印的。我们可以使用<code>x.to_bytes</code>请求位表示。结果是一个字节序列,将以<code>b'...'</code>的形式打印。注意,如果给定的字节与ascii字符没有关联,打印过程会自动尝试将字节转换为ascii字符或类似<code>\xab</code>的内容。因此,我们将字节馈送到<code>b64encode</code>,它通常用于处理文件,因此需要字节对象,它将一个<em>ascii字符串</em>作为字节对象。对于这个结果,相反的过程是类似的:b64<em>ascii string</em>->;二进制字节数->;hex->;int</p>