本文正在参与掘金团队号上线活动,点击 查看大厂春招职位
一、题目描述:
手写二进制转 Base64
二、思路分析:
Base64是一种基于64个可打印字符来表示二进制数据的表示方法。
二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。
三、AC 代码:
function binaryTobase64(code) {
let base64Code = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
let res = '';
// 1 bytes = 8bit,6bit 位替换成一个 base64 字符
// 所以每 3 bytes 的数据,能成功替换成 4 个 base64 字符
// 对不足 24 bit (也就是 3 bytes) 的情况进行特殊处理
if (code.length % 24 === 8) {
code += '0000';
res += '=='
}
if (code.length % 24 === 16) {
code += '00';
res += '='
}
let encode = '';
// code 按 6bit 一组,转换为
for (let i = 0; i < code.length; i += 6) {
let item = code.slice(i, i + 6);
encode += base64Code[parseInt(item, 2)];
}
return encode + res;
}
四、总结:
试着参加掘金活动打个卡;