Tengo una cadena de bits que quiero convertir a base64 pero no parece que haya una función nativa para hacer esto y tampoco pude encontrar un módulo de nodo. ):
Input: 100110110101000110100011011001100010110100011011001100100110100011000001100000110000011000001100001001010100111110000011001111100101010011111010011100010110001001001001100000110100111010010100111110000111001000100000110001001000101100111110011001001001101011010001011001001101001010000011000100100100110000011010011
Salida: representación base64 de ese valor binario equivalente
Tal vez una mejor pregunta es cómo convertir una cadena de bits en un búfer. No estoy seguro
Como habrás adivinado, lo principal es convertir la cadena en algo más fácil de convertir a base64 y luego convertir eso a base64.
En el siguiente código, hacemos estas secuencias de conversión:
const encode = bitstr => { const bytes = []; // convert bit string to BigInt let value = BigInt('0b' + bitstr); // chop it up into bytes while (value > 0n) { bytes.unshift(Number(value & 0xffn)); value >>= 8n; } // convert to binary string and encode as base64 return btoa(String.fromCharCode.apply(null, bytes)); }; const decode = b64 => { // decode base64 to binary string const bstr = atob(b64); // convert binary string to bit string return new Array(bstr.length).fill(0).map( (_,i) => bstr.charCodeAt(i).toString(2).padStart(8, i ? '0' : '') ).join(''); }; const bitstr = '100110110101000110100011011001100010110100011011001100100110100011000001100000110000011000001100001001010100111110000011001111100101010011111010011100010110001001001001100000110100111010010100111110000111001000100000110001001000101100111110011001001001101011010001011001001101001010000011000100100100110000011010011'; const encoded = encode(bitstr); const decoded = decode(encoded); console.log(bitstr); console.log(encoded); console.log(decoded);