题目描述
实现 Base64 编码算法,将任意二进制数据转换为可打印字符格式。Base64 编码规则如下:
1.使用 64 个字符作为编码表:A-Z(26个大写字母)、a-z(26个小写字母)、0-9(10个数字)、+ 和 /
2.每 3字节 原始数据转换为 4字节 编码数据
a.将3字节数据拆分为24位二进制
b.将24位数据重新划分为4组6位数据
c.将6位数据转换为十进制索引
d.根据索引在Base64表中查找对应字符
3.当原始数据长度不是 3 的倍数时:
剩余 1字节:补 ==
剩余 2字节:补 =
输入格式
输入一行字符串 s(长度 ≤ 1024),可能包含任意字符(包括空格、标点、非 ASCII 字符)
输出格式
输出一行字符串,表示 Base64 编码结果
样例数据
input
Hello World
output
SGVsbG8gV29ybGQ=
样例解释
1.将3字节数据拆分为24位二进制:
字符串“Hello World”前三个字符“Hel”对应的字节如下
字节1: 01001000
字节2: 01100101
字节3: 01101100
2.将24位数据重新划分为4组6位数据:
原始分组: [01001000] [01100101] [01101100]
重新分组:
第1组: 010010
第2组: 000110 (字节1后2位 + 字节2前4位)
第3组: 010101 (字节2后4位 + 字节3前2位)
第4组: 101100 (字节3后6位)
3.将6位数据转换为十进制索引:
010010 -> 18
000110 -> 6
010101 -> 21
101100 -> 44
4.根据索引在Base64表中查找对应字符:
18 -> 'S'
6 -> 'G'
21 -> 'V'
44 -> 's'
最终编码: "SGVs"