Hola:
La verdad es que se trata de un tema curioso. Mi intención era considerar los caracteres dentro del rango de los bytes de toda la vida (8 bits), pero no tengo la menor idea del rango que puedan tener los juegos de caracteres actuales (miles tal vez)...
Con el sistema que planteé se calculan solo 8 bits, pero con letras como la del euro (& euro;) se pasa bastante del rango, y por eso pensé retocar el código:
Código:
function binario(x) {
ch = "";
while (x > 0) {ch = (x % 2) + ch; x = parseInt(x / 2)};
return ch;
}
En este caso no se indica el número de bits, porque solo se calculan los significativos, y el resultado es el mismo que poniendo toString(2)...
Una mala noticia es que sería imposible (creo) conseguir un algoritmo inverso.
Saludos