var input_id = "bin_text";
var answer_id = "answer";
function convertToASCII() {
var bin_text = document.getElementById(input_id);
var answer = document.getElementById(answer_id);
if (!answer) {
alert("Error: No element with id \""+answer_id+"\".");
return;
}
if (bin_text)
var text = bin_text.value;
else {
error("No element with id \""+input_id+"\".");
return;
}
var divisible = text.length % 8;
var nonBinary = /[^0|1]/.test(text);
if (text.length > 0 && divisible == 0 && !nonBinary) {
var regex = /[0|1]{8}/g;
var str = text.match(regex);
var code = 0;
var placeVal, exp, digit;
var ascii = '';
while (str.length > 0) {
code = 0;
for (var i=0; i
placeVal = 7-i;
exp = Math.pow(2, i);
digit = str[0].charAt(placeVal);
code += exp*digit;
}
str.shift();
ascii += String.fromCharCode(code);
}
answer.innerHTML = "
" + ascii + "
";}
else {
error("Malformed binary.");
return;
}
function error(errText) {
answer.innerHTML = "Error: " +
errText + "";
}
}
.block {
width: 45%;
border: 1px solid #000000;
padding: 10px;
}
.binary {
background-color: #C6FFC7;
padding: 3px;
}
.error {
background-color: #FFC6C6;
padding: 3px;
}
Enter some binary to decode: