解决方案 »

  1.   

    alert(("00000000"+result.toString(2)).slice(-8));
      

  2.   

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>Insert title here</title>    </head>
        <body>        <input id="num1" type="text" />
            <select id="operator">
                <option value="0">please select</option>
                <option value="+">+</option>
                <option value="-">-</option>
                <option value="*">*</option>
                <option value="&">&</option>
                <option value="|">|</option>
                <option value="^">^</option>      
            </select>        <input id="num2" type="text" />        <button id="go">go</button>
            <div>result<span id="result"></span></div>
            <script>
                function $(id) {
                    return document.getElementById(id);
                }
                function check(v) {
                    var r = /[01]{8}/;
                    return r.test(v);
                }
                function preprocess( ) {
                    var num1 = $("num1").value;
                    var num2 = $("num2").value;
                    if (check(num1) && check(num2)) {
                        var op = $("operator").value;
                        if (op == 0) {
                            alert('select operator');
                        } else {
                            var n1 = parseInt(num1, 2);
                            var n2 = parseInt(num2, 2);
                            process(n1, n2, op);
                        }
                    } else {
                        //alert("format error");
                    }            }
                function process(n1, n2, op) {
                    var result;
                    switch (op) {
                        case "+" :
                            result = eval(n1 + "+" + n2);
                            result = result.toString(2);
                            return  padding(result);
                        case "-" :
                            result = eval(n1 + "-" + n2);
                            result = result.toString(2);
                            return  padding(result);
                        case "*" :
                            result = eval(n1 + "*" + n2);
                            result = result.toString(2);
                            return  padding(result);
                        case "&" :
                            result = eval(n1 + "&" + n2);
                            result = result.toString(2);
                            return  padding(result);
                        case "|" :
                            result = eval(n1 + "|" + n2);
                            result = result.toString(2);
                            return  padding(result);
                        case "^" :
                            result = eval(n1 + "^" + n2);
                            result = result.toString(2);
                            return  padding(result);
                    }
                }
                function padding(v) {
                    var len = v.length;
                    var l = 8 - len;
                    var s = '';
                    for (var i = 0; i < l; i++) {
                        s += "0";
                    }
                    $("result").innerHTML = s + v;
                    
                }
                function init() {
                    $("go").addEventListener("click", preprocess);
                }
                init();
            </script>
        </body>
    </html>
      

  3.   

    <input id="num1" type="text" maxlength="8" />
    <select id="operator">
        <option value="">选择</option>
        <option value="+">+</option>
        <option value="-">-</option>
        <option value="*">*</option>
        <option value="&">&</option>
        <option value="|">|</option>
        <option value="^">^</option>
        <option value="~">~</option>
    </select>
    <input id="num2" type="text" maxlength="8" />
    <button id="go">go</button>
    <p>结果:<span id="result"></span></p>
    <script type="text/javascript">
        function G(id) { return document.getElementById(id)}
        var num1=G("num1"),num2=G("num2"),oper=G("operator");
        num1.onchange=num2.onchange=function(e){
            var obj= e.target|| e.srcElement;
            if(!/^[01]{8}$/.test(obj.value))obj.value="";
        };
        G("go").onclick = function(){
            var n1=num1.value,n2=num2.value,o=oper.value,c;
            if(n1!="" && n2!="" && o!=""){
                if(o=="~"){
                    c="";
                    for (var i = 0; i < n1.length; i++) {
                        c += n1.charAt(i)=="1"?"0":"1";
                    }
                }else{
                    c = eval(parseInt(n1,2) + o + parseInt(n2,2)).toString(2);
                    c = (c<0?"-":"")+("00000000"+Math.abs(c)).slice(-8);
                }
                G("result").innerHTML = c;
            }else{
                alert("请填写完整!");
            }
        };
    </script>