请问下各位大佬,怎么理解下面这句话
Topic sourcebase64.b64encode(b'binary\x00string')中的\x00是老师自己编码时候加的,是用户自己想表示此处是一个字节,而不是这句话‘如果要编码的二进制数据不是3的倍数,最后会剩下1个或2个字节怎么办?Base64用\x00字节在末尾补足后,再在编码的末尾加上1个或2个=号,表示补了多少字节,解码的时候,会自动去掉。’的应用,不是3的倍数时候,是默认自动加的,你是看不见的,也不需要人为的去操作
所以b'binary\x00string'只有13个字节,不是3的倍数,base64在编码的时候会自动加上两个字节0 即\x00(这个是用16进制表示的一个字节0)
- 1
greatzues
如果编码的二进制数据不是3的倍数,最后会剩下1个或2个字节怎么办?Base64用\x00字节在末尾补足后,再在编码的末尾加上1个或2个=号,表示补了多少字节,解码的时候,会自动去掉。 因为我算了下老师给的例子:
1.明明b'binary\x00string'的binary和string都已经是3的倍数,为什么还要加\x00,而且还是中间,为什么不是加在末尾?
但返回值YmluYXJ5AHN0cmluZw==,确实是4的倍数,一直没搞懂,希望大佬们能帮一下,非常感谢!