设字符串长度为n ,长度为 ⌈n/3⌉*4   ⌈⌉ 代表上取整

 

先看一个来自牛客网的题目

在网络传输数据时,经常需要将二进制数据转换为一个可打印字符串。一般用到的可打印字符集合包含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补齐,对应的输出字符为“=”

 

http://www.ruanyifeng.com/blog/2008/06/base64.html

posted on 2021-03-10 11:44  sidesky  阅读(3656)  评论(0编辑  收藏  举报