Solución:
Lo que debes hacer es convertir todos los caracteres usando charCodeAt
función para obtener el código Ascii en decimal. Luego puede convertirlo a valor binario usando toString(2)
:
HTML:
<input id="ti1" value ="TEST"/>
<input id="ti2"/>
<button onClick="convert();">Convert!</button>
JS:
function convert() {
var output = document.getElementById("ti2");
var input = document.getElementById("ti1").value;
output.value = "";
for (var i = 0; i < input.length; i++) {
output.value += input[i].charCodeAt(0).toString(2) + " ";
}
}
Y aquí hay un violín: http://jsfiddle.net/fA24Y/1/
Esto podría ser lo más simple que puede obtener:
function text2Binary(string) {
return string.split('').map(function (char) {
return char.charCodeAt(0).toString(2);
}).join(' ');
}
- atravesar la cuerda
- convierte cada carácter a su código char
- convertir el código char a binario
- empújelo en una matriz y agregue los ceros de la izquierda
- devuelve una cadena separada por espacio
Código:
function textToBin(text) {
var length = text.length,
output = [];
for (var i = 0;i < length; i++) {
var bin = text[i].charCodeAt().toString(2);
output.push(Array(8-bin.length+1).join("0") + bin);
}
return output.join(" ");
}
textToBin("!a") => "00100001 01100001"
De otra manera
function textToBin(text) {
return (
Array
.from(text)
.reduce((acc, char) => acc.concat(char.charCodeAt().toString(2)), [])
.map(bin => '0'.repeat(8 - bin.length) + bin )
.join(' ')
);
}
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)