Operazioni tra numeri binari
Addizione
La somma binaria segue regole simili a quelle della somma decimale, ma con solo due cifre (0 e 1). Le regole sono:
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 0 (riporto 1)
1 + 1 + 1 = 1 (riporto 1)
Esempio:
\[
\begin{array}{cccc}
& 1 & 0 & 1 & 1 & +\\
& 1 & 1 & 0 & 1 & =\\
\hline
1 & 1 & 0 & 0 & 0 & \\
\end{array}
\]
Sottrazione
La sottrazione binaria utilizza il concetto di "prendere in prestito" come nella sottrazione decimale. Le regole sono:
\(0 - 0 = 0\)
\(1 - 0 = 1\)
\(1 - 1 = 0\)
\(0 - 1 = 1\) (prendi in prestito 1 \(\rightarrow 10 - 1\))
Esempio:
\[
\begin{array}{cccc}
& 1 & 0 & 1 & 0 & -\\
& 0 & 1 & 1 & 0 & =\\
\hline
& 0 & 1 & 0 & 0 \\
\end{array}
\]
Moltiplicazione
La moltiplicazione binaria è simile alla moltiplicazione decimale, ma più semplice poiché i fattori possono essere solo 0 o 1. Le regole sono:
\(0 \times 0 = 0\)
\(0 \times 1 = 0\)
\(1 \times 0 = 0\)
\(1 \times 1 = 1\)
Esempio:
\[
\begin{array}{cccc}
& & & 1 & 0 & 1 & \times\\
& & & 1 & 1 & 0 & =\\
\hline
& & & 0 & 0 & 0 & +\\
& & 1 & 0 & 1 & 0 & +\\
& 1 & 0 & 1 & 0 & 0 & =\\
\hline
& 1 & 1 & 1 & 1 & 0 \\
\end{array}
\]
Moltiplicazione per potenze di 2
Nel sistema binario, moltiplicare un numero per una potenza di 2 equivale a spostare le cifre verso sinistra di tante posizioni quante sono le potenze di 2 desiderate.
Esempio
Consideriamo il numero binario \(11010\) (che corrisponde a \(26\) in decimale) e moltiplichiamolo per \(2^2\) (ovvero \(4\)):
1. Numero binario: \(11010\)
2. Spostamento a sinistra di 2 posizioni: \(11010 \rightarrow 1101000\)
3. Risultato: \(1101000\) corrisponde a \(6\) in decimale, quindi \(26 \times 4 = 104\).
Divisione
La divisione binaria è simile alla divisione decimale e può essere eseguita tramite il metodo della sottrazione ripetuta o il metodo della divisione lunga.
Esempio: (Dividiamo \(1100\) (12 in decimale) per \(11\) (3 in decimale))
\[
\begin{array}{r|l}
100 \\
\hline
11 & 1100 \\
& - 11 \\
\hline
& 10 \\
& - 0 \\
\hline
& 100 \quad \text{(Quoziente)} \\
& - 11 \\
\hline
& 1 \quad \text{(Resto)} \\
\end{array}
\]
Il risultato è \(100\) (4 in decimale) con un resto di \(1\).
Divisione per potenze di 2
Nel sistema binario, dividere un numero per una potenza di 2 equivale a spostare le cifre verso destra di tante posizioni quante sono le potenze di 2 desiderate.
Esempio
Consideriamo il numero binario \(11010\) (che corrisponde a \(26\) in decimale) e dividiamolo per \(2^2\) (ovvero \(4\)):
1. Numero binario: \(11010\)
2. Spostamento a destra di 2 posizioni:
\(11010 \rightarrow 00110\)
3. Risultato: \(00110\) corrisponde a \(6\) in decimale, quindi \(26 \div 4 = 6\).
Se il numero non è divisibile esattamente, le cifre "uscite" rappresentano il resto. Ad esempio, per \(11011\) (che corrisponde a \(27\)):
\(11011 \rightarrow 00110\) (risultato \(6\), resto \(3\))
Quindi, \(27 \div 4 = 6\) con resto \(3\).
Complemento a 1
Calcolo del Complemento a 1 (CA1)
1. Rappresentazione di numeri positivi
I numeri positivi vengono rappresentati normalmente in binario, senza alcuna modifica. Ad esempio:
Il numero decimale \(+5\) in binario su \(8\) bit è: \(00000101\).
2. Rappresentazione di numeri negativi
se è negativo rappresento su n bit il valore assoluto in binario e poi lo complemento con il CA1, per capire meglio segui i seguenti passaggi:
Esempio:
Utilizziamo il numero \(-5\) in base 10 come esempio.
Passo 1:
Iniziamo rappresentando il numero positivo \(5\) in binario: \(00000101\)
Passo 2:
Ora, invertiamo tutti i bit del numero binario \(00000101\):
\(0 \rightarrow 1\)
\(0 \rightarrow 1\)
\(0 \rightarrow 1\)
\(0 \rightarrow 1\)
\(1 \rightarrow 0\)
\(0 \rightarrow 1\)
\(1 \rightarrow 0\)
\(0 \rightarrow 1\)
Dopo aver invertito tutti i bit, otteniamo: \(11111010\)
Complemento a 2
Calcolo del Complemento a 2 (CA2)
1. Rappresentazione di numeri positivi
I numeri positivi vengono rappresentati normalmente in binario, senza alcuna modifica. Ad esempio:
Il numero decimale \(+5\) in binario su \(8\) bit è: \(00000101\).
2. Rappresentazione di numeri negativi
Per rappresentare un numero negativo in complemento a 2, segui questi passaggi:
Passo 1:
Converti il valore assoluto del numero in binario. Ad esempio, per \(-5\): \(\lvert -5 \rvert \rightarrow 00000101\).
Passo 2:
Inverti \(0\) con \(1\) e viceversa lasciando invariato il primo \(1\) da sinistra.
Per \(00000101 \rightarrow 11111010\).
Numeri Negativi
In un sistema binario, il bit più significativo viene spesso utilizzato come bit di segno: se il bit di segno è \(0\), il numero è positivo; se invece il bit di segno è \(1\), il numero è negativo.
Ad esempio, su \(4\) bit: \(0011\) rappresenta \(+3\). \(1011\) potrebbe rappresentare un numero negativo (dipende dal metodo di rappresentazione).
Tuttavia, usare solo il bit di segno può portare a problemi, come la presenza di due rappresentazioni per lo zero (\(+0\) e \(-0\)). Per questo motivo, il complemento a 2 è preferito.
Base | Numero | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Decimale | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
Binario | 0 | 1 | 10 | 11 | 100 | 101 | 110 | 111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
Esadecimale | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | a | b | c | d | e | f |