javascript將二進位制轉換成ASCII碼對應的字元

admin發表於2017-04-06

本章節分享一段程式碼例項,它實現了將二進位制轉換為ASCII碼對應的字元。

程式碼例項如下:

[HTML] 純文字檢視 複製程式碼
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<script type="text/javascript">
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(answer_id);
    return;
  }
  if (bin_text){
    var text = bin_text.value;
  }
  else {
    error(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<str[0].length; 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 = errText ;
  }
}
window.onload=function(){
  var obt=document.getElementById("bt");
  obt.onclick=function(){convertToASCII()}
}
</script>
</head>
<body>
<div>
  <input type="text" value="01101000" id="bin_text"/>
  <input type="button" id="bt" value="檢視效果"/>
</div>
<p id="answer"></p>
</body>
</html>

相關文章