94 lines
2.4 KiB
HTML
94 lines
2.4 KiB
HTML
<html>
|
|
|
|
<!--
|
|
Nome: Mario
|
|
Cognome: Montanari
|
|
Classe: 3AIN
|
|
-->
|
|
|
|
<head>
|
|
<link rel="stylesheet" href="style_addition_of_binaries.css" />
|
|
<link rel="icon" href="itis_nullo_baldini_ravenna.jpg" />
|
|
<title>Calcolo della Somma Binaria</title>
|
|
</head>
|
|
|
|
<body>
|
|
<div class="container">
|
|
<h1>Somma tra due numeri binari</h1>
|
|
|
|
<p>Primo numero binario: <input type="text" id="num1" placeholder="Inserisci un numero binario" /></p>
|
|
|
|
<p>Secondo numero binario: <input type="text" id="num2" placeholder="Inserisci un numero binario" /></p>
|
|
|
|
<button onclick="sommaBin()">Calcola la Somma Binaria</button>
|
|
|
|
<h2>Risultato:</h2>
|
|
<p id="sommaBin">Somma binaria: </p>
|
|
</div>
|
|
|
|
<div class="footer">
|
|
<small>Calcolo della Somma tra due numeri binari di lunghezza variabile, © 2025, Mario Montanari, 3AIN</small>
|
|
</div>
|
|
|
|
<script>
|
|
function numeriValidi(num) {
|
|
for (let i = 0; i < num.length; i++) {
|
|
if (num[i] !== "0" && num[i] !== "1") {
|
|
window.alert("Numeri immessi non validi!");
|
|
return false;
|
|
}
|
|
}
|
|
if (num === "") {
|
|
window.alert("Inserisci tutti i campi!");
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
function sommaBin() {
|
|
let num1 = document.getElementById("num1").value;
|
|
let num2 = document.getElementById("num2").value;
|
|
|
|
if (!numeriValidi(num1) || !numeriValidi(num2)) {
|
|
return;
|
|
}
|
|
|
|
// let dec1 = parseInt(num1, 2);
|
|
let bin1 = document.getElementById("num1").value;
|
|
let dec1 = 0;
|
|
let len1 = bin1.length;
|
|
for (let i = 0; i < len1; i++) {
|
|
let bit1 = parseInt(bin1[i]);
|
|
let pot1 = len1 - i - 1;
|
|
dec1 = dec1 + (bit1 * Math.pow(2, pot1));
|
|
}
|
|
|
|
// let dec2 = parseInt(num2, 2);
|
|
let bin2 = document.getElementById("num2").value;
|
|
let dec2 = 0;
|
|
let len2 = bin2.length;
|
|
for (let i = 0; i < len2; i++) {
|
|
let bit2 = parseInt(bin2[i]);
|
|
let pot2 = len2 - i - 1;
|
|
dec2 = dec2 + (bit2 * Math.pow(2, pot2));
|
|
}
|
|
|
|
let sommaDec = dec1 + dec2;
|
|
|
|
let sommaBin = "";
|
|
|
|
// let sommaBin = sommaDec.toString(2);
|
|
while (sommaDec > 0) {
|
|
sommaBin = (sommaDec % 2) + sommaBin;
|
|
sommaDec = Math.floor(sommaDec / 2);
|
|
}
|
|
|
|
console.log(num1);
|
|
console.log(num2);
|
|
console.log(sommaBin);
|
|
document.getElementById("sommaBin").innerHTML = "Somma binaria: " + sommaBin;
|
|
}
|
|
</script>
|
|
</body>
|
|
|
|
</html> |