首页 > 其他分享 >binary 与 base64

binary 与 base64

时间:2023-08-02 13:56:08浏览次数:28  
标签:binary return base64 padLength char split const

 1 const charsMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');
 2 
 3 function binaryToBase64(chars) {
 4     const padLength = 3 - chars.length % 3;
 5     return (chars.split('').map(char => {
 6         return char.charCodeAt(0).toString(2).padStart(8, '0');
 7     }).join('') + '0'.repeat(2 * padLength)).split(/\B(?=(?:\d{6})+$)/g).map(char => {
 8         return charsMap[+('0b' + char)];
 9     }).join('') + '='.repeat(padLength);
10 }
11 
12 function base64ToBinary(base64) {
13     const tail = base64.match(/=+/);
14     const padLength = tail ? tail[0].length : 0;
15     return base64.slice(0, -padLength).split('').map(char => {
16         return charsMap.indexOf(char).toString(2).padStart(6, '0');
17     }).join('').slice(0, -padLength * 2).split(/\B(?=(?:\d{8})+$)/g).map(code => {
18         return String.fromCharCode(+('0b' + code));
19     }).join('');
20 }
21 
22 export {
23     binaryToBase64,
24     base64ToBinary
25 }

 

标签:binary,return,base64,padLength,char,split,const
From: https://www.cnblogs.com/aurora-power/p/17600478.html

相关文章

  • Educational Codeforces Round 152 (Rated for Div. 2) C. Binary String Copying
    题目大意为给定一个01字符串,给定m个区间,对于每个区间进行一次局部排序,求能得到的字符串种类数解法:因为字符串只包含0,1两个字符,我们观察可以得到,对于不同的区间来说如果排序后一样则说明肯定是某些位置在排序过程中无贡献,因此我们只需找出有贡献的位置即可对于一个区间[l,r],来说......
  • Binary String Copying
    Smiling&Weeping----第一次见你的时候,在我的心里已经炸成了烟花,需要用一生来打扫灰炉。题目链接:Problem-C-Codeforces题目大意不难,就是把每种......
  • CF1849C Binary String Copying
    Link我们想一下,什么时候两种变换是相同的或者说,这意味着什么。本题目有特殊性,特殊性就在于只有0和1对于每一个被改变的区间\([L_i,r_I]\),从\(l_i\)开始的那一堆0,和从\(r_i\)开始的那一堆1都没变。所以变化的部分就要从从左往右第一个1,和从右往左第一个0开始算。这个东西可以......
  • JS实现文件转base64
     核心:functionfile2base64(){fileAddress=document.getElementById("fileImage").files[0];file=newFileReader();file.readAsDataURL(fileAddress);file.onload=function(){console.log(file.result);}}  完整代码:<!DOCTYPE......
  • JavaScript学习 -- Base64编码
    Base64编码是一种常用的将二进制数据转换为文本数据的方式。在JavaScript中,我们可以通过使用Base64编码算法,将二进制数据转换为可读的文本数据,以便于在网络传输、文件传输等场景下使用。在本篇博客中,我们将介绍Base64编码的基本原理和相关技术,并提供一些实例来演示如何在JavaScript......
  • [LeetCode] 894. All Possible Full Binary Trees
    Givenaninteger n,return alistofallpossible fullbinarytrees with n nodes.Eachnodeofeachtreeintheanswermusthave Node.val==0.Eachelementoftheansweristherootnodeofonepossibletree.Youmayreturnthefinallistoftreesin......
  • Python和Java的BASE64操作
    Python中的操作1.1相关链接Python编码解码---字符集/base641.2举例说明在Python中,base64.b64encode()方法用于对给定的字节数据进行Base64编码。该方法接受一个bytes-like对象(例如字节数组或字节字符串)作为输入,并返回一个Base64编码的字节字符串。使用base64.b64encode()......
  • java base64编码字符串
    JavaBase64编码字符串Base64是一种用于将二进制数据转换为可打印ASCII字符的编码方式。在Java中,我们可以使用Java提供的Base64类来进行Base64编码和解码操作。Base64编码和解码Base64编码将二进制数据转换为一组可打印的ASCII字符。这种编码方式通常用于在网络传输中传递二进制......
  • 每日算法之四十六:Add Binary(二进制字符创相加)
    二进制字符创相加,通过进位的方式逐位考虑。也可以把相加的过程抽象成一个函数。Giventwobinarystrings,returntheirsum(alsoabinarystring).Forexample,a= "11"b= "1"Return "100".方法一:classSolution{public:stringaddBinary(stringa,string......
  • 【每日一题】Problem 538B. Quasi Binary
    原题解决思路最简单的思路就是贪心了,每次生成不超过目标值的\(quasibinary\),即可使最终数量最少#include<bits/stdc++.h>intquasibinary(intmax){intres=0;intp=0;while(max>0){if(max%10>0){res+=int(pow(10,......