关于Base64编码,在了解过其编码原理后,我对于“000”的编码感到很疑惑?

根据我了解到的原理来说,编码之后应该是AAAA,因为000对应的ASCII为24个0。但是,实际上“000”的Base64编码是MDAw。这是为什么呢?MDAw是怎么得来的呢?求解答。

img

MDAw
12.3.0.48
001100.000011.000000.110000.
00110000.00110000.00110000.

00110000对应ascii码的'0'

你所说的

00000000对应'\0'

你已经了解了base64的规则,剩下的就是按照规则解析"000"这个字符串。
首先,0作为一个字符存储在计算机中,查找ASSII码表,知道其对应的值是48,即二进制是 00110000
那么"000"对应的底层存储应该是 00110000 00110000 00110000 (不考虑字符串终结'\0')
base64就是对这里的二进制进行处理,按照每6位取一个结果 001100 00 0011 0000 00 110000
也就是说,base64处理后的结果为: 00001100 00000011 00000000 00110000
这个结果,是要在专门的base64索引表去查找的即对应字符就是MDAw

img

一篇文章彻底弄懂Base64编码原理
https://blog.csdn.net/wo541075754/article/details/81734770

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632