根据我了解到的原理来说,编码之后应该是AAAA,因为000对应的ASCII为24个0。但是,实际上“000”的Base64编码是MDAw。这是为什么呢?MDAw是怎么得来的呢?求解答。
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
一篇文章彻底弄懂Base64编码原理
https://blog.csdn.net/wo541075754/article/details/81734770