javascript - 我无法在 javascript 中使用此方法转换二进制文件,但它可以在 java 中使用

标签 javascript

<html>
    <body>
        <input type="text" name="inpt" value="please input text in here" id="text_field"></input> <button id="btn" onClick="bnry()">Click me!</button>
        <p id="yo"></p>
    </body>
    <script type="text/javascript">
        function hello(){
            var n = document.getElementById('text_field').value;
            if(n == "fd"){
                document.getElementById('yo').innerHTML = "pass unlock";
            }
        }
        function bnry(){
            var ary = new Array();
            var num = document.getElementById('text_field').value;
            var count = 1;
            while (num < num*2){
                count = num % 2;
                num = num / 2;
                ary.push(count);
             }
             document.getElementById("yo").innerHTML = ary; 
        }
    </script>
</html>

最佳答案

JavaScript 中的数字只是 float 。在 Java 中,上面的操作是有效的,因为应用于整数的 / 运算符会返回一个整数:

5/2 == 2 // Java
5/2 == 2.5 // Javascript

要解决此问题,请使用 Math.floor 转换为整数:

 while (num > 0){
     count = num % 2;
     num = Math.floor(num / 2);
     ary.push(count);
 }

关于javascript - 我无法在 javascript 中使用此方法转换二进制文件,但它可以在 java 中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25471693/

相关文章:

javascript - 使用 ENTER 提交表单与单击提交按钮时的不同行为

javascript - jquery/js - 如何创建切换按钮来改变框的高度

javascript - 实现深层链接 url 导致 react 原生应用程序无法打开 android

javascript - d3.json 请求成功但收到错误消息

javascript - 如何使用 JQuery 将值数组插入数据库

javascript - 无法弄清楚如何将副本传递到 DYMO.Label.Framework.3.0.js SDK

javascript - 获取 Chart.js 数据的 JSON 字符串时出现问题

javascript - 如何捕获所有ajax请求被接收的事件

javascript - 附加 Html 代码中的 Angular ng-model 不起作用

javascript - 调整对象大小时的 Fabric.js 线条渲染