School-HTML/3AIN/Esercizi TPS JavaScript Misti/addition_of_binaries.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, &copy 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>