107 lines
3.3 KiB
HTML
107 lines
3.3 KiB
HTML
<html>
|
|
|
|
<!--
|
|
Nome: Mario
|
|
Cognome: Montanari
|
|
-->
|
|
|
|
<head>
|
|
<link rel="stylesheet" href="style_parity_code.css">
|
|
<link rel="icon" href="itis_nullo_baldini_ravenna.jpg" />
|
|
<title>Calcolo del Codice di Parità</title>
|
|
</head>
|
|
|
|
<body>
|
|
<div class="container">
|
|
<h1>Calcolo del Codice di Parità tra due numeri binari di 8 bit</h1>
|
|
|
|
<p>I due numeri che inserirai qui sotto dovranno essere lunghi obbligatoriamente 8 bit.</p>
|
|
|
|
<p>Primo numero binario: <input type="text" id="binario1" placeholder="Inserisci un numero binario"></p>
|
|
|
|
<p>Secondo numero binario: <input type="text" id="binario2" placeholder="Inserisci un numero binario"></p>
|
|
|
|
<button onclick="calcolaParita()">Calcola il Codice di Parità</button>
|
|
|
|
<h2>Risultato:</h2>
|
|
<p id="risultato">Bit di parità orizzontale per il primo numero binario:</br>Bit di parità orizzontale per il secondo numero binario</br></br>Byte di parità verticale:</br></br>Parità del primo numero binario:</br>Parità del secondo numero binario:</p>
|
|
</div></br>
|
|
|
|
<div class="footer">
|
|
<small>Calcolo del Codice di Parità tra due numeri binari obbligatoriamente di 8 bit, © 2025, Mario Montanari, 3AIN</small>
|
|
</div>
|
|
|
|
<script>
|
|
function calcolaParita() {
|
|
let binario1 = document.getElementById('binario1').value;
|
|
let binario2 = document.getElementById('binario2').value;
|
|
|
|
function isBinary(binario) {
|
|
for (let i = 0; i < binario.length; i++) {
|
|
if (
|
|
binario[i] !== "0" &&
|
|
binario[i] !== "1"
|
|
) {
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
|
|
if (
|
|
!isBinary(binario1) ||
|
|
!isBinary(binario2) ||
|
|
binario1.length !== 8 ||
|
|
binario2.length !== 8
|
|
) {
|
|
window.alert("Errore! Inserisci un numero binario di 8 bit.");
|
|
return;
|
|
}
|
|
|
|
function calcolaCodiceParitaRiga(binario) {
|
|
let conteggio = 0;
|
|
for (let i = 0; i < binario.length; i++) {
|
|
if (binario[i] === "1") {
|
|
conteggio++;
|
|
}
|
|
}
|
|
return (conteggio % 2 === 0) ? "0" : "1";
|
|
}
|
|
|
|
let paritaRiga1 = calcolaCodiceParitaRiga(binario1);
|
|
let paritaRiga2 = calcolaCodiceParitaRiga(binario2);
|
|
|
|
function calcolaCodiceParitaColonna(binario1, binario2) {
|
|
let colonnaParita = "";
|
|
for (let i = 0; i < 8; i++) {
|
|
let bit1 = binario1[i];
|
|
let bit2 = binario2[i];
|
|
let sommaBit = (bit1 === "1" ? 1 : 0) + (bit2 === "1" ? 1 : 0);
|
|
colonnaParita = colonnaParita + (sommaBit % 2 === 0 ? "0" : "1");
|
|
}
|
|
return colonnaParita;
|
|
}
|
|
|
|
let paritaColonne = calcolaCodiceParitaColonna(binario1, binario2);
|
|
|
|
let totaleBit1 = (binario1).split("").filter(bit => bit === "1").length;
|
|
let paritaBit1 = totaleBit1 % 2 === 0 ? "Parità Pari" : "Parità Dispari";
|
|
|
|
let totaleBit2 = (binario2).split("").filter(bit => bit === "1").length;
|
|
let paritaBit2 = totaleBit2 % 2 === 0 ? "Parità Pari" : "Parità Dispari";
|
|
|
|
console.log(binario1);
|
|
console.log(binario2);
|
|
console.log(paritaColonne);
|
|
|
|
document.getElementById("risultato").innerText =
|
|
`Bit di parità orizzontale per il primo numero binario: ${paritaRiga1}\n` +
|
|
`Bit di parità orizzontale per il secondo numero binario: ${paritaRiga2}\n\n` +
|
|
`Byte di parità verticale: ${paritaColonne}\n\n` +
|
|
`Parità del primo numero binario: ${paritaBit1}\n` +
|
|
`Parità del secondo numero binario: ${paritaBit2}`;
|
|
}
|
|
</script>
|
|
</body>
|
|
|
|
</html> |