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

1. 前言

二进制计算器是一种经典的计算器形式,主要用于进行二进制数字间的计算。本文将介绍如何使用 HTML、CSS 和 JavaScript 创建二进制计算器。

2. HTML 结构

首先,我们需要创建基本的 HTML 结构,用于显示计算器的各种组件。以下是我们将使用的基本结构:

<div id="calculator">

<input type="text" id="input" disabled>

<div class="keys">

<button class="operator" id="add">+</button>

<button class="operator" id="subtract">-</button>

<button class="operator" id="multiply">*</button>

<button class="operator" id="divide">/</button>

<button id="clear">Clear</button>

<button id="equals">=</button>

<button class="number" id="1">1</button>

<button class="number" id="0">0</button>

</div>

</div>

我们将创建一个包含计算器所需组件的 DIV 元素,并使用内部文本输入域、各种操作符按钮和数字按钮。所有数字按钮都具有 .number 类,而所有操作符按钮都具有 .operator 类。

3. CSS 样式

一旦我们拥有了 HTML 结构,我们将创建一个样式表来应用样式。以下是我们将使用的基本样式:

#calculator {

width: 400px;

margin: 0 auto;

text-align: center;

background-color: #f2f2f2;

padding: 20px;

border-radius: 10px;

}

input[type="text"] {

width: 100%;

height: 40px;

margin-bottom: 20px;

border: none;

border-radius: 5px;

background-color: #f8f8f8;

font-size: 20px;

text-align: right;

padding-right: 15px;

}

.keys {

width: 100%;

display: flex;

flex-wrap: wrap;

justify-content: center;

}

button {

width: 100px;

height: 50px;

border: none;

border-radius: 5px;

margin: 5px;

font-size: 20px;

color: #fff;

background-color: #007bff;

cursor: pointer;

}

button:hover {

background-color: #0069d9;

}

button:active {

transform: translateY(2px);

}

.operator {

background-color: #dc3545;

}

.operator:hover {

background-color: #c82333;

}

.operator:active {

transform: translateY(2px);

}

button#clear {

background-color: #6c757d;

}

button#clear:hover {

background-color: #5a6268;

}

button#clear:active {

transform: translateY(2px);

}

button#equals {

background-color: #28a745;

}

button#equals:hover {

background-color: #218838;

}

button#equals:active {

transform: translateY(2px);

}

button.number {

background-color: #343a40;

}

button.number:hover {

background-color: #23272b;

}

button.number:active {

transform: translateY(2px);

}

这些样式将应用于我们所创建的 HTML 结构。我们使用 ID 选择器为计算器 DIV 元素应用一些基本样式,然后使用类选择器来为不同类型的按钮(数字和操作符)定义样式。悬停和活动状态也分别具有不同的样式。

4. JavaScript 代码

现在我们已经创建了 HTML 结构和 CSS 样式,接下来是创建 JavaScript 代码。以下是我们将编写的基本代码:

const input = document.querySelector('#input');

const clearBtn = document.querySelector('#clear');

const keys = document.querySelectorAll('.keys');

const equalsBtn = document.querySelector('#equals');

// add event listeners

for (let i = 0; i < keys.length; i++) {

keys[i].addEventListener('click', () => {

const keyValue = keys[i].getAttribute('id');

updateInput(keyValue);

});

}

clearBtn.addEventListener('click', clearInput);

equalsBtn.addEventListener('click', performCalculation);

// update input field

function updateInput(value) {

input.value += value;

}

// clear input field

function clearInput() {

input.value = '';

}

// perform calculation

function performCalculation() {

const calculation = input.value;

const result = eval(calculation);

input.value = result.toString(2);

}

我们首先获取需要的元素,如输入框、清除按钮、所有按钮和等号按钮。然后,我们向所有按键添加单击事件侦听器。在单击事件中,我们获取按键的值并调用 updateInput() 函数,以将其添加到输入框中。我们还分别向清除按钮和等号按钮添加单击事件侦听器,执行相应的处理程序。

在 updateInput() 函数中,我们接收按键的值,然后将其添加到输入框中。

在 clearInput() 函数中,我们获取输入框,并将其值设置为空。

最后,在 performCalculation() 函数中,我们获取输入框中的计算式,使用 eval() 函数进行求值,并将结果转换为二进制格式。最终结果被设置为输入框的值。

5. 总结

到目前为止,我们已经创建了一个基本的二进制计算器,使用 HTML、CSS 和 JavaScript。

我们使用了基本的 HTML 结构,使用 CSS 样式美化计算器组件,添加了 JavaScript 代码,以响应用户输入并执行计算过程。最终结果以二进制格式输出。

需要注意的是,该计算器有相当大的局限性,只能执行二进制数字之间的计算,并且没有对异常情况的有效处理。

如果您对 HTML、CSS 和 JavaScript 熟练掌握,可以轻松修改和扩展该示例,以创造更多功能强大的计算机。