Operazioni con i numeri binari

Dopo aver visto, nella lezione precedente, com'è definito il sistema binario, vediamo ora come si svolgono le operazioni con i numeri binari. Si possono infatti tranquillamente eseguire addizione, sottrazione, moltiplicazione e divisione nel sistema binario. Prendiamole in esame una per volta.

 

Prima di procedere è necessario avere ben chiaro cos'è il sistema binario e, in caso di dubbi, ti basta un click sul link precedente.

 

Addizione con i numeri binari

 

Per eseguire la somma tra due o più numeri binari la prima cosa da fare è incolonnarli: per farlo nel modo giusto basta posizionarli uno sotto l'altro partendo dalla prima cifra a destra e facendole corrispondere. 

 

 

Per intenderci:

 

come incolonnare

 

Una volta incolonnati nel modo giusto si esegue la somma dei due numeri binari ricordando che:

 

 

\begin{array}{c c c c l} 0&+&0&=&0\\ 1&+&0&=&1 \\ 0&+&1&=&1 \\ 1&+&1&=&0 \ \ \mbox{con riporto di 1 alla colonna immediatamente a sinistra} \end{array}

 

Esempi di somma tra numeri binari


Consideriamo la seguente somma secondo il procedimento appena visto

 

 

\bullet \ (10100)_2 + (111)_2 \ = \ \mbox{?}

 

\begin{array}{ccccccc} & {\color{red}1} & & & &\mbox{riporti}\\ 1 & 0 & 1 & 0 & 0 & + \\ & & 1 & 1 & 1 & = \\ \cline{1-6}1 & 1 & 0 & 1 & 1\end{array}

 

 

e abbiamo il risultato: (10100)_2 + (111)_2 = (11011)_2

 

 

Vediamo un altro esempio. Vogliamo calcolare la somma in base 2

 

 

\bullet \ (1111)_2 + (1010)_2 + (101)_2\ = \ \mbox{?}

 

\begin{array}{ccccccc} 1 & 1 & 1  & 1 &  &\mbox{riporti}\\ & 1 & 1 & 1 & 1 & + \\ & 1 & 0 & 1 & 0 & + \\ & & 1 & 0 & 1 & = \\ \cline{1-6} 1 & 1 & 1 & 1 & 0 & \end{array}

 

 

quindi il risultato è (1111)_2 + (1010)_2 + (101)_2\ = \ (11110)_2

 

 

La somma tra numeri binari gode anch'essa della proprietà commutativa e della proprietà associativa.

 

Sottrazione tra numeri binari

 

Per eseguire correttamente la differenza tra due numeri binari bisogna innanzitutto incolonnarli così come visto nell'addizione e poi ricordare che:

 

 

\begin{array}{c c c c c l} 0&-&0&=&0\\ 1&-&0&=&1 \\ 1&-&1&=&0 \\ 0&-&1&=&1& \mbox{dopo essersi prestato 1 dalla colonna a sinistra} \end{array}

 

 

Attenzione! Quando facciamo un prestito da una colonna ad un'altra, l'unità aumenta il suo valore di uno, cioè è come se ricevessimo in prestito due 1.

 

Sembra difficile da capire ma non è così. Pensate alla sottrazione tra numeri naturali, ad esempio 153-45. Non potendo eseguire la differenza tra le cifre delle unità, ci presteremo 1 decina, che non equivale ad una unità bensì a dieci unità. Insomma: spostandoci di colonna aumenta il valore delle cifre; un'altra giustificazione del fatto che il sistema binario è posizionale.

 

Esempi di sottrazione tra numeri binari

 

Consideriamo la seguente sottrazione tra numeri in base 2

 

 

\bullet \ (11110)_2 - (1010)_2 \ = \ \mbox{?}

 

\begin{array}{ccccccc} 1 & 1 & 1 & 1 & 0 & - \\ & 1 & 0 & 1 & 0 & = \\ \cline{1-6}1 & 0 & 1 & 0 & 0\end{array}

 

 

Quindi (11110)_2 - (1010)_2 \ = \ (10100)_2

 

 

Vediamo un altro esempio:

 

 

\bullet \ (10010)_2 - (1101)_2 \ = \ \mbox{?}

 

\begin{array}{ccccccc} \\ 1 & 0 & 0 & 1 & 0 & - \\ & 1 & 1 & 0 & 1 & = \\ \cline{1-6}0 & 0 & 1 & 0 & 1\end{array}

 

 

Pertanto (10010)_2 - (1101)_2 \ = \ (101)_2

 

Moltiplicazione tra numeri binari

 

Per eseguire la moltiplicazione tra due numeri binari bisogna innanzitutto tener presente che:

 

 

\begin{array}{c c c c l} 0&\times &1&=&0\\ 1& \times &0&=&0 \\ 0&\times&0&=&0 \\ 1&\times&1&=&1 \end{array}

 

 

e poi procedere come visto per il prodotto tra numeri naturali, ovvero:

 

- si incolonnano i due termini e si traccia una linea;

 

- si moltiplica ciascuna cifra del secondo fattore per il primo fattore;

 

- si scrive il risultato del primo prodotto e si cambia di volta in volta riga per riportare gli altri ricordando di lasciare un posto vuoto sotto la prima cifra a destra di ciascun risultato;

 

- si sommano i vari risultati ottenuti.

 

Esempi di moltiplicazione tra numeri binari

 

Come primo esempio sul prodotto tra numeri binari consideriamo

 

 

\bullet \ (110)_2 \times (10)_2 \ = \ \mbox{?}

 

\begin{array}{c c c c c c} & 1 & 1 & 0 & \times & \\ & & 1 & 0 & = & \\ \cline{1-5}  & 0 & 0 & 0 & + & \to 110 \times 0\\ 1 & 1 & 0 &  & = & \to 110 \times 1 \\ \cline{1-5} 1 & 1 & 0 & 0 &   \end{array}

 

 

Quindi (110)_2 \times (10)_2 \ = \ 1100

 

 

Come secondo esempio, proviamo a calcolare

 

 

\bullet \ (101)_2 \times (110)_2 \ = \ \mbox{?}

 

\begin{array}{c c c c c c c} & & 1 & 0 & 1 & \times & \\ & & 1 & 1 & 0 & = & \\ \cline{1-6}  & & 0 & 0 & 0 & + & \to 101 \times 0\\ & 1 & 0 & 1 &  & + & \to 101 \times 1 \\ 1 & 0 & 1 &  &  & = & \to 101 \times 1 \\ \cline{1-5} 1 & 1 & 1 & 1 & 0 &  \end{array}

 

 

Ovvero (101)_2 \times (110)_2 \ = \ (11110)_2

 

Divisione tra numeri binari

 

La divisione tra numeri binari è senza dubbio la più difficile tra le 4 operazioni aritmetiche e si entra spesso in confusione perché siamo abituati a pensare utilizzando il sistema decimale. Per ovviare a questo inconveniente vediamo un esempio proponendoci di calcolare la divisione tra (10010)2 e (10)2.

 

Scriveremo una serie di passaggi che, se seguiti passo passo, non lasceranno spazio ad errori.

 

1) Si incolonnano i due numeri da dividere (dividendo e divisore) così come visto per i numeri naturali

 

 

\begin{array}{c c c c c | c c} 1 & 0 & 0 & 1 & 0 & 1 & 0 \\ \cline{6-7} &&&&& \\ &&&&& \end{array}

 

 

2) Si prende, nel dividendo, un gruppo di cifre tali da avere un numero maggiore o uguale al divisiore contrassegnandole con una linea

 

 

\begin{array}{c c c c c | c c} \cline{1-2}1 & 0 & 0 & 1 & 0 & 1 & 0 \\ \cline{6-7} &&&&& \\ &&&&& \end{array}

 

 

3) Poiché stiamo lavorando nel sistema binario, si possono utilizzare solo le cifre 0 e 1; inoltre poiché un numero non può iniziare per 0, la prima cifra del quoziente sarà necessariamente 1. Riporteremo quindi un 1 come prima cifra del risultato;

 

 

\begin{array}{c c c c c | c c} \cline{1-2}1 & 0 & 0 & 1 & 0 & 1 & 0 \\ \cline{6-7} &&&&&1 \\ &&&&& \end{array}

 

 

4) Si moltiplica il divisore per 1 (ottenendo, ovviamente, il divisore stesso) e lo si riporta sotto alle cifre contrassegnate del dividendo

 

 

\begin{array}{c c c c c | c c} \cline{1-2}1 & 0 & 0 & 1 & 0 & 1 & 0 \\ \cline{6-7} 1&0&&&&1 \\ &&&&& \end{array}

 

 

5) Si esegue la sottrazione tra i due numeri

 

 

\begin{array}{c c c c c | c c} \cline{1-2}1 & 0 & 0 & 1 & 0 & 1 & 0 \\ \cline{6-7} 1&0&&&&1 \\ \cline{1-2}=&=&&&& \end{array}

 

 

6) Si scrive accanto al risultato della sottrazione la cifra successiva del dividendo

 

 

\begin{array}{c c c c c | c c} \cline{1-2}1 & 0 & 0 & 1 & 0 & 1 & 0 \\ \cline{6-7} 1&0&&&&1 \\ \cline{1-2}=&=&0&&& \end{array}

 

 

7) Se il numero così ottenuto è maggiore o uguale del divisore si riporta un altro 1 nel quoziente, se è minore si riporta uno zero (nel nostro caso riporteremo quindi uno 0)

 

 

\begin{array}{c c c c c | c c} \cline{1-2}1 & 0 & 0 & 1 & 0 & 1 & 0 \\ \cline{6-7} 1&0&&&&1&0 \\ \cline{1-2}=&=&0&&& \end{array}

 

 

8) Si esegue la moltiplicazione tra il nuovo numero scritto e il divisore e lo si riporta nella colonna di sinistra (10 × 0 = 0)

 

 

\begin{array}{c c c c c | c c} \cline{1-2}1 & 0 & 0 & 1 & 0 & 1 & 0 \\ \cline{6-7} 1&0&&&&1&0 \\ \cline{1-2}=&=&0&&& \\ & & 0 & & &\end{array}

 

 

9) Si procede come visto nei punti 5) - 8) fino a quando non terminano le cifre del dividendo

 

 

\begin{array}{c c c c c | c c c c} \cline{1-2}1 & 0 & 0 & 1 & 0 & 1 & 0 \\ \cline{6-9} 1&0&&&&1&0&0&1 \\ \cline{1-2}=&=&0&&& \\ & & 0 & & & \\ \cline{2-3} & & = & 1 &  \\ & & & 0 & \\ \cline{3-4} & & & 1 & 0 & \\ & & & 1 & 0 & \\ \cline{4-5} & & & = & = \end{array}

 

 

Possiamo quindi concludere che (10010)_2 : (10)_2 = (1001)_2 \ \mbox{resto} \ 0.

 

Altro esempio di divisione nel sistema binario

 

\bullet \ (10001)_2 : (11)_2 = (101)_2 \ \mbox{resto} \ 10, infatti, procedendo come appena visto:

 

 

\begin{array}{c c c c c | c c c} \cline{1-3}1 & 0 & 0 & 0 & 1 & 1 & 1 \\ \cline{6-8} &1&1&{\color{red}\downarrow}& {\color{blue}\downarrow}&1&0&1 \\ \cline{1-3}=&=&1&0&{\color{blue}\downarrow}& \\ &  & 0 & 0 & {\color{blue}\downarrow}& \\ \cline{3-4} &  & 1 & 0 &  1 \\ & & & 1 & 1 \\ \cline{3-5} & & & 1 & 0 & \end{array}

 

 

dove abbiamo considerato dapprima (100)2 essendo (10)2 < (11)2.

 

 


 

Se volete continuare ad esercitarvi potete mettervi alla prova con gli esercizi sui numeri binari, sono tutti svolti! Inoltre avete a disposizione un comodo convertitore binario per verificare la correttezza dei vostri risultati. ;)

 

 

Buon proseguimento su YouMath,

Giuseppe Carichino (Galois)

 

Lezione precedente..........Esercizi correlati..........Lezione successiva


Tags: operazioni nel sistema binario - addizione, sottrazione, moltiplicazione e divisione con i numeri binari.