如何使用HTML、CSS和JavaScript创建二进制计算器

如何使用HTML、CSS和JavaScript创建二进制计算器

HTML 或超文本标记语言以及 CSS(级联样式表)JavaScript 可以用来开发能执行某些功能的交互式用户应用程序。类似地,可以使用HTML、CSS和JS一起开发二进制计算器。

二进制计算器对二进制数进行算术运算。二进制计算器的缓冲区限制为8位。如果算术运算的结果超过8位,则多余的位数会被截断。通过使用JavaScript函数来完成算术运算。

该应用程序由一个显示屏组成,用于显示用户输入以及算术运算的结果。使用按钮0和1来输入。使用+、-、*、/和计算按钮来执行输入的算术运算。

计算按钮绑定了一个JavaScript函数calculate()。当点击计算按钮时,calculate()函数被触发,并解析“output”部分的HTML。通过拆分字符串来获取第一个数字和第二个数字,最后使用parseInt()将它们转换为整数。方法parseInt()接受两个参数,第一个是要转换为整数的字符串,第二个是基值,这里是2或二进制。

根据用户选择的加法、减法、乘法或除法运算符执行算术运算。input()函数接收用户输入并在屏幕上显示。backspace()函数删除显示的字符串的最后一个字符。cls()函数清除显示屏。以下代码片段实现了一个二进制计算器。

示例: 当用户输入时,输入以HTML的形式保留在“output”部分。声明了一个全局变量scr,可以被所有的JavaScript函数访问。当有任何输入时,它会被存储在scr变量中。当点击计算按钮时,会在scr变量中存储的字符串中搜索运算符的存在,使用indexOf()方法返回运算符的索引,如果没有找到则返回-1。如果存在运算符,则在scr变量存储的字符串中拆分运算符符号(+,-,*,/),并将字符串存储在num数组中。由于输入的格式是字符串,必须将其转换为二进制整数格式以执行计算。使用parseint(str,base)方法解析字符串,其中str是要转换的字符串,base是数字的基数(这里使用二进制基数=2)。进行二进制转换后,执行指定的算术运算,将结果再次存储在scr变量中,并显示在“output”部分。

<!DOCTYPE html> 
<html> 
    <head> 
        <meta charset="utf-8" /> 
        <title>Binary Calculator</title> 
        
        <!--Bootstrap 4 CSS CDN -->
        <link rel="stylesheet" 
              href= 
"https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" 
              integrity= 
"sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" 
              crossorigin="anonymous" /> 
    </head> 
  
    <body> 
        <div class="container"> 
            <div class="jumbotron"> 
                <h1>Binary Calculator</h1> 
                <div id="output"></div> 
                <div class="container mt-2"> 
                    <div class="row"> 
                        <div class="col-12"> 
                            <button type="button" 
                                    class="btn btn-light" 
                                    onclick="input('0')"> 
                                      0</button> 
                            <button type="button" 
                                    class="btn btn-light" 
                                    onclick="input('1')"> 
                                      1</button> 
                            <button type="button" 
                                    class="btn btn-danger float-right ml-2" 
                                    onclick="cls()"> 
                                      AC</button> 
                            <button type="button" 
                                    class="btn btn-warning float-right" 
                                    onclick="backspace()"> 
                                      Backspace</button> 
                        </div> 
                    </div> 
                    <div class="row mt-2"> 
                        <div class="col-12"> 
                            <button type="button" 
                                    class="btn btn-info" 
                                    onclick="input('+')">+</button> 
                            <button type="button"
                                    class="btn btn-info" 
                                    onclick="input('-')">-</button> 
                            <button type="button" 
                                    class="btn btn-info" 
                                    onclick="input('*')">*</button> 
                            <button type="button" 
                                    class="btn btn-info" 
                                    onclick="input('/')">/</button> 
                        </div> 
                    </div> 
                    <div class="row mt-2"> 
                        <div class="col-12"> 
                            <button type="button" 
                                    class="btn btn-success" 
                                    onclick="calculate()">Calculate</button> 
                        </div> 
                    </div> 
                </div> 
            </div> 
        </div> 
        <!--jquery and popper.js cdn -->
        <script src= 
"https://code.jquery.com/jquery-3.5.1.slim.min.js" 
                integrity= 
"sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" 
                crossorigin="anonymous"></script> 
        <script src= 
"https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js" 
                integrity= 
"sha384-ho+j7jyWK8fNQe+A12Hb8AhRq26LrZ/JpcUGGOn+Y7RsweNrtN/tE3MoK7ZeZDyx" 
                crossorigin="anonymous"></script> 
    </body> 
</html>

CSS代码

.jumbotron { 
    width: 60%; 
    margin: auto; 
    text-align: center; 
} 
  
#output { 
    border: 2px solid black; 
    min-height: 60px; 
    text-align: right; 
    font-weight: bold; 
    font-size: 20px; 
} 
  
.btn { 
    min-width: 120px; 
    border: 2px solid black; 
}

JavaScript代码

var scr = ""; //declared as global v 
function calculate() { 
    if (scr.indexOf("+") != -1) { 
        // If + is present in the string 
        // String obtained from scr is split 
        var num = scr.split("+"); 
  
        // The splitted string stores in num array 
        var x = parseInt(num[0], 2); 
  
        // The num[0] and num[1] are the two binary  
        // numbers resp 
        var y = parseInt(num[1], 2); 
        var sum = x + y; 
        var ans = sum.toString(2); 
    } else if (scr.indexOf("-") != -1) { 
  
        // If - is present in the string 
        var num = scr.split("-"); 
        var x = parseInt(num[0], 2); 
        var y = parseInt(num[1], 2); 
        var sub = x - y; 
        var ans = sub.toString(2); 
    } else if (scr.indexOf("*") != -1) { 
  
        // If * is present in the string 
        var num = scr.split("*"); 
        var x = parseInt(num[0], 2); 
        var y = parseInt(num[1], 2); 
        var mul = x * y; 
        var ans = mul.toString(2); 
    } else if (scr.indexOf("/") != -1) { 
  
        // If / is present in the string 
        var num = scr.split("/"); 
        var x = parseInt(num[0], 2); 
        var y = parseInt(num[1], 2); 
        var div = x / y; 
        var ans = div.toString(2); 
    } 
    scr = ans; 
    document.getElementById("output").innerHTML = scr; 
  
    function input(ch) { 
        scr += ch; 
        document.getElementById("output").innerHTML = scr; 
  
        function backspace() { 
            var b = document.getElementById("output").innerHTML; 
            scr = b.substring(0, b.length - 1); 
            document.getElementById("output").innerHTML = scr; 
  
            function cls() { 
                scr = ""; 
                document.getElementById("output").innerHTML = scr; 
            }

输出:

如何使用HTML、CSS和JavaScript创建二进制计算器

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程