【问题标题】:Convert Binary to text using JavaScript使用 JavaScript 将二进制转换为文本
【发布时间】:2014-02-17 05:05:25
【问题描述】:

我想做一个二进制到文本的转换器。我已经做了一个文本到二进制转换器。这是代码:

function convertText() {
    var output = document.getElementById("binaryConvert");
    var input = document.getElementById("textConvert").value;
    output.value = "";
    for (i=0; i < input.length; i++) {var e=input[i].charCodeAt(0);var s = "";
    do{
        var a =e%2;
        e=(e-a)/2;
        s=a+s;
        }while(e!=0);
        while(s.length<8){s="0"+s;}
        output.value+=s;
    }
}

但我不知道如何将二进制转换为文本。有人知道吗?此外,如果他们输入的不是二进制,那么在 textConvert 框中,它的值是“您输入的不是二进制”或类似的值。这是我所有的代码:

<!doctype html>
<html>
<head>
<title>Binary Converter</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript">
function convertText() {
    var output = document.getElementById("binaryConvert");
    var input = document.getElementById("textConvert").value;
    output.value = "";
    for (i=0; i < input.length; i++) {var e=input[i].charCodeAt(0);var s = "";
    do{
        var a =e%2;
        e=(e-a)/2;
        s=a+s;
        }while(e!=0);
        while(s.length<8){s="0"+s;}
        output.value+=s;
    }
}
</script>
<noscript>
   Please enable JavaScript in your browsers settings to use this tool.
</noscript>
</head>
<body>
<center>
<div class="container">
    <span class="main">Binary Converter</span><br>
    <textarea class="textConvert" id="textConvert" onKeyUp="convertText()" placeholder="Input text to convert to Binary"></textarea>
    <textarea class="binaryConvert" id="binaryConvert" placeholder="Binary text" readonly></textarea>
    <div class="about">Made by <strong>Omar Latreche</strong></div>
</div>
</center>
</body>
</html>

编辑:我想通了。代码如下:

function convertBinary() {
    var bintext, textresult="", binlength;
    bintext = document.getElementById("text_result").value.replace(/[^01]/g, "");
    binlength = bintext.length-(bintext.length%8);
    for (z=0; z < binlength; z=z+8) {
        textresult += String.fromCharCode(parseInt(bintext.substr(z,8),2));
    }
    document.getElementById("text_convert").value = textresult;
}

感谢所有回答!

【问题讨论】:

  • 最好将解决方案设置为将其标记为已接受的答案,这样其他人现在问题已解决:)

标签: javascript html binary


【解决方案1】:

是的,按照上面的建议使用 parseInt - 并考虑使用 (+input).toString(2) 将您的输入转换为二进制 :)

function convertText() {
   var output = document.getElementById("binaryConvert");
   var input = document.getElementById("textConvert").value;
   output.value = (+input).toString(2);
}

function convertBinary() {
   var output = document.getElementById("textConvert");
   var input = document.getElementById("binaryConvert").value;
   output.value = parseInt(input,2);
}

【讨论】:

  • 你能做一个JSFiddle吗?我有点困惑。
  • 对我有用。在 convertBinary 中有错字,但 parseInt("111",2) 产生 7 和 (+7).toring(2) 产生 "111"...
  • 你能做一个jsfiddle吗?我不知道一切都去哪儿了。我很困惑。
  • 你已经让它在一个方向上工作(十进制->二进制)。我相信您能够使二进制->十进制工作。 :)
【解决方案2】:

您可以使用基数为 2 的parseInt()

例如:parseInt('10001', 2); 返回 17

如果您的输入字符串不是有效的二进制文件,它会返回 NaN,您可以使用 isNaN()

对其进行测试

【讨论】:

  • 你能告诉我这一切会去哪里吗?就像把它放到我的代码中?我是初学者。
【解决方案3】:
function binarytoString(str) {
  return str.split(/\s/).map(function (val){
    return String.fromCharCode(parseInt(val, 2));
  }).join("");
}

【讨论】:

  • 虽然此代码可能会回答问题,但提供有关它如何和/或为什么解决问题的额外上下文将提高​​答案的长期价值。
猜你喜欢
  • 2014-02-16
  • 1970-01-01
  • 2012-05-04
  • 1970-01-01
  • 1970-01-01
  • 2013-08-20
  • 1970-01-01
  • 2013-03-07
相关资源
最近更新 更多