先看一个来自牛客网的题目
在网络传输数据时,经常需要将二进制数据转换为一个可打印字符串。一般用到的可打印字符集合包含64个字符,因此又称为Base64表示法。现有一个char数组长度为12,要将它表示为Base64字符串,请问Base64字符串最少需要( ) 个char;如果char数组长度为20,则需要( )个char。
16,28
base64的编码都是按字符串长度,以每3个8bit的字符为一组,
然后针对每组,首先获取每个字符的ASCII编码,然后把ASCII编码转换成8bit二进制,得到24bit;
再把这24bit每六个划分,高位用0补齐,得到4个8bit的字节,
然后再将这4个8bit的字节转换成十进制,对照Base64编码表,
得到对应编码后的字符。
如果字符串的长度不能被3整除,多出来的部分用0补齐,对应的输出字符为“=”
Base64的编码长度至少比原来长三分之一。