Ver Mensaje Individual
  #30 (permalink)  
Antiguo 12/04/2007, 23:46
Avatar de caricatos
caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 1 mes
Puntos: 1284
Re: como covertir una cadena de texto a su equivalencia a binario con JavaScript

Hola:

Se me ocurrió que para poder reconocer las letras, podría poner un carácter distinto de 0/1 como delimitador, de esa forma se reconocerían los caracteres, también sería innecesario completar los 8 bits (aunque en el ejemplo adjunto se contemple) y sobre todo, se podría usar tecnología inversa...

Código:
<html>
<head>
<title>
	binario
</title>
<script type="text/javascript">
String.prototype.toChar = function() {
// La cadena es del tipo generado por toBin()...
// cada carácter se separa por "-"
 function Decimal(bin) {
  b = bin.split("").reverse();
  contador = 0;
  for (var i = 0, total = b.length; i < total; i ++)
   contador += Math.pow(2, i) * parseInt(b[i]);
  return contador;
 }
 palabra = "";
 c = this.split("-");
 for (var i = 0, total = c.length; i < total; i ++)
  palabra += String.fromCharCode(Decimal(c[i]));
 return palabra;
}
String.prototype.toBin = function() {
  function binario(x) {
    ch = "";
    while (x > 0) {ch = (x % 2) + ch; x = parseInt(x / 2)};
    while (ch.length < 8) ch = "0" + ch;
    return ch;
  }
cadena = new Array();
for (i = 0, total = this.length; i < total; i ++)
 cadena[cadena.length] = binario(this.charCodeAt(i), 7);
return cadena.join("-");
}
</script>
<body onload="alert('€ hola'.toBin().toChar() + ' = ' + '€ hola'.toBin())">
</body>
</html>
Hace algunos años, hice una página donde se generaban todas las letras con un script: Generador de Fórmulas Matemáticas y Lenguaje HTML, pinchando sobre letras se abre un popup con todas las letras, y pinchando sobre estas se devuelve la codificación html correspondiente... también se muestra el código al posarse con el ratón (por el atributo title)

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo