© 2014-2025 Roberto Foschini All rights reserved

Esercizi sul sistema binario

Proponiamo ora una scheda di esercizi svolti sul sistema binario e sulle operazioni con i numeri binari che vi faranno prendere ancor più confidenza con questo nuovo sistema di numerazione e saranno un ottimo allenamento per poter poi affrontare nel migliore dei modi la vostra verifica. \( Wink" \)

Esercizi risolti sul passaggio dalla base 10 alla base 2

Scrivi in base due i seguenti numeri dati in base dieci: 8, 20, 32, 125, 413, 631, 935.

Soluzione

Come abbiamo visto nella lezione sul sistema binario, per passare dal sistema decimale al sistema binario bisogna dividere ripetutamente il numero di partenza ed i quozienti che man mano si ottengono per 2 (fino a quando non avremo 0 come risultato della divisione), appuntarsi a parte i resti e poi prenderli al contrario. Procedendo in questo modo avremo

\( 8=(1000)_2 \ \ 20=(10100)_2 \ \ 32 = (100000)_2 \ \ 125=(1111101)_2 \ \ 413=(110011101)_2 \ \ 631=(1001110111)_2 \ \ 935=(1110100111)_2 \)

Mostriamo il procedimento solo per alcuni lasciando a voi i rimanenti;

\( \begin{array}{rcrclcll}{\color{red}8} & : & 2 & = & 4 & \ & \mbox{resto} & 0 \\ 4 & : & 2 & = & 2 & \ & \mbox{resto} & 0 \\ 2 & : & 2 & = & 1 & \ & \mbox{resto} & 0 \\ 1 & : & 2 & = & 0 & \ & \mbox{resto} & 1\end{array} \)

quindi \( 8=(1000)_2 \)

\( \begin{array}{rcrclcll}{\color{red}20} & : & 2 & = & 10 & \ & \mbox{resto} & 0 \\ 10 & : & 2 & = & 5 & \ & \mbox{resto} & 0 \\ 5 & : & 2 & = & 2 & \ & \mbox{resto} & 1 \\ 2 & : & 2 & = & 1 & \ & \mbox{resto} & 0 \\1 & : & 2 & = & 0 & \ & \mbox{resto} & 1\end{array} \)

allora \( 20=(10100)_2 \)

\( \begin{array}{rcrclcll}{\color{red}125} & : & 2 & = & 62 & \ & \mbox{resto} & 1 \\ 62 & : & 2 & = & 31 & \ & \mbox{resto} & 0 \\ 31 & : & 2 & = & 15 & \ & \mbox{resto} & 1 \\ 15 & : & 2 & = & 7 & \ & \mbox{resto} & 1 \\ 7 & : & 2 & = & 3 & \ & \mbox{resto} & 1 \\ 3 & : & 2 & = & 1 & \ & \mbox{resto} & 1 \\ 1 & : & 2 & = & 0 & \ & \mbox{resto} & 1\end{array} \)

da cui, prendendo i resti in ordine inverso rispetto a come li abbiamo ottenuti: \( 125=(1111101)_2 \)

\( \begin{array}{rcrclcll}{\color{red}631} & : & 2 & = & 315 & \ & \mbox{resto} & 1 \\ 315 & : & 2 & = & 157 & \ & \mbox{resto} & 1 \\157 & : & 2 & = & 78 & \ & \mbox{resto} & 1 \\ 78 & : & 2 & = & 39 & \ & \mbox{resto} & 0 \\ 39 & : & 2 & = & 19 & \ & \mbox{resto} & 1 \\ 19 & : & 2 & = & 9 & \ & \mbox{resto} & 1 \\ 9 & : & 2 & = & 4 & \ & \mbox{resto} & 1 \\ 4 & : & 2 & = & 2 & \ & \mbox{resto} & 0 \\ 2 & : & 2 & = & 1 & \ & \mbox{resto} & 0 \\ 1 & : & 2 & = & 0 & \ & \mbox{resto} & 1\end{array} \)

confermando quindi che \( 631=(1001110111)_2 \)

Esercizi svolti sul passaggio dalla base 2 alla base 10

Converti dalla base 2 alla base 10 i seguenti numeri binari: (1101)2 (11101)2 (100011)2 (1110001)2 (10110011)2 (100111000)2 (1110001011)2

Soluzione

Come visto nella lezione linkata precedentemente per passare dal sistema binario al sistema decimale occorre scrivere i numeri dati in forma polinomiale moltiplicando per opportune potenze di 2 in base alla posizione occupata dalle singole cifre. Cioè moltiplicheremo per 20 la prima cifra a destra, per 21 la seconda, per 22 la terza...e così via, per poi sommare il tutto. Procedendo in questo modo avremo:

\( (1101)_2=13 \ \ (11101)_2=29 \ \ (100011)_2=35 \ \ (1110001)_2=113 \ \ (10110011)_2=179 \ \ (100111000)_2 = 312 \ \ (1110001011)_2=907 \)

Mostremo i passaggi seguiti solo per alcuni di essi lasciando a voi i rimanenti.

\( {\color{red}(1101)_2}=1 \times 2^0 \ + \ 0 \times 2^1 \ + \ 1 \times 2^2 \ + \ 1 \times 2^3 \ = 1 + 0 + 4 + 8 = {\color{blue}13} \)

\( {\color{red}(11101)_2}=1 \times 2^0 \ + \ 0 \times 2^1 \ + \ 1 \times 2^2 \ + \ 1 \times 2^3 \ + \ 1 \times 2^4 = 1 + 0 + 4 + 8 + 16 = {\color{blue}29} \)

\( {\color{red}(1110001)_2}=1 \times 2^0 \ + \ 0 \times 2^1 \ + \ 0 \times 2^2 \ + \ 0 \times 2^3 \ + \ 1 \times 2^4 \ + \ 1 \times 2^5 \ + \ 1 \times 2^6 = 1 + 0 + 0 + 0 + 16 + 32 + 64 = {\color{blue}113} \)

\( {\color{red}(100111000)_2}=0 \times 2^0 \ + \ 0 \times 2^1 \ + \ 0 \times 2^2 \ + \ 1 \times 2^3 \ + \ 1 \times 2^4 \ + \ 1 \times 2^5 \ + \ 0 \times 2^6 \ + \ 0 \times 2^7 \ + \ 1 \times 2^8 = 0 + 0 + 0 + 8 + 16 + 32 + 0 + 0 + 256 = {\color{blue}312} \)

Operazioni svolte con i numeri binari

Abbiamo già visto come si svolgono le operazioni con i numeri binari. Proponiamo ora una serie di addizioni, sottrazioni, moltiplicazioni e divisioni risolte coi i numeri binari; alcune di esse le svolgeremo dettagliatamente, per altre daremo solo il risultato e lasceremo a voi il compito di fare i conticini. \( Wink \)

Esegui le seguenti addizioni nel sistema binario

...e verifica poi i risultati nel sistema decimale.

\( \bullet \ (11)_2 + (111)_2 \)

\( \begin{array}{ccccc|ccccccccc} & & 1 & 1 & + & \ \ & & 1 & 1 & \rightarrow & & 3 & + \\ & 1 & 1 & 1 & = & \ \ & 1 & 1 & 1 & \rightarrow & & 7 & = \\ \hline 1 & 0 & 1 & 0 & & \ \ 1 & 0 & 1 & 0 & \rightarrow & 1 & 0 \end{array} \)

Quindi \( \underbrace{(11)_2}_{3} + \underbrace{(111)_2}_{7}=\underbrace{(1010)_2}_{10} \)

\( \bullet \ (1110)_2 + (10010)_2 + (10100)_2 \)

\( \begin{array}{cccccccc|cccccccccc} & & 1 & 1 & 1 & 0 & + & \ \ & & 1 & 1 & 1 & 1 & 0 & \rightarrow & 1 & 4 & + \\ & 1 & 0 & 0 & 1 & 0 & + & \ \ & & 1 & 0 & 0 & 1 & 0 & \rightarrow & 1 & 8 & + \\ & 1 & 0 & 1 & 0 & 0 & = & \ \ & & 1 & 0 & 1 & 0 & 0 & \rightarrow & 2 & 0 & = \\ \hline 1 & 1 & 0 & 1 & 0 & 0 & & \ \ & 1 & 1 & 0 & 1 & 0 & 0 & \rightarrow & 5 & 2 \end{array} \)

Quindi \( \underbrace{(1110)_2}_{14} + \underbrace{(10010)_2}_{18} + \underbrace{(10100)_2}_{20} = \underbrace{(110100)_2}_{54} \)

A voi il compito di verificare che

Esegui le seguenti sottrazioni nel sistema binario

...verificando poi i risultati nel sistema decimale

\( \bullet \ (11111)_2 -(1010)_2 \)

\( \begin{array}{ccccccc|ccccccccc}1 & 1 & 1 & 1 & 1 & - & \ \ & 1 & 1 & 1 & 1 & 1 & \rightarrow & 3 & 1 & - \\ & 1 & 0 & 1 & 0 & = & \ \ & & 1 & 0 & 1 & 0 & \rightarrow & 1 & 0 & = \\ \hline 1 & 0 & 1 & 0 & 1 & & & \ \ 1 & 0 & 1 & 0 & 1 & \rightarrow & 2 & 1\end{array} \)

Quindi \( \underbrace{(11111)_2}_{31} -\underbrace{(1010)_2}_{10} = \underbrace{(10101)_2}_{21} \)

\( \bullet \ (1011010)_2 -(10001)_2 \)

\( \begin{array}{ccccccccc|cccccccccccc} 1 & 0 & 1 & 1 & 0 & 1 & 0 & - & \ \ & 1 & 0 & 1 & 1 & 0 & 1 & 0 & \rightarrow & 9 & 0 & - \\ & & 1 & 0 & 0 & 0 & 1 & = & \ \ & & & 1 & 0 & 0 & 0 & 1 & \rightarrow & 1 & 7 & = \\ \hline 1 & 0 & 0 & 1 & 0 & 0 & 1 & & \ \ & 1 & 0 & 0 & 1 & 0 & 0 & 1 & \rightarrow & 7 & 3\end{array} \)

Ovvero \( \underbrace{(1011010)_2}_{90} -\underbrace{(10001)_2}_{17} = \underbrace{(1001001)_2}_{73} \)

Ora tocca a voi! Verificate che:

Svolgi le seguenti moltiplicazioni tra numeri binari

...e verifica poi i risultati convertendo tutto nel sistema decimale.

\( \bullet \ (101)_2 \times (11)_2 \)

\( \begin{array}{c c c c c c} & 1 & 0 & 1 & \times & \\ & & 1 & 1 & = & \\ \hline & 1 & 0 & 1 & + & \to 101 \times 1\\ 1 & 0 & 1 & & = & \to 101 \times 1 \\ \hline 1 & 1 & 1 & 1 & \end{array} \)

Passando al sistema decimale:

\( \begin{array}{rcc} (101)_2 & = & 5 \\ (11)_2 & = & 3 \\ (1111)_2 & = & 15 \end{array} \to 5 \times 3 = 15 \)

Quindi \( \underbrace{(101)_2}_{5} \times \underbrace{(11)_2}_{3}= \underbrace{(1111)_2}_{15} \)

\( \bullet \ (110)_2 \times (110)_2 \)

\( \begin{array}{c c c c c c c c} & & & 1 & 1 & 0 & \times & \\ & & & 1 & 1 & 0 & = & \\ \hline & & & 0 & 0 & 0 & + & \to 110 \times 0 \\ & & 1 & 1 & 0 & & + & \to 110 \times 1 \\ & 1 & 1 & 0 & & & = & \to 110 \times 1 \\ \hline 1 & 0 & 0 & 1 & 0 & 0 \end{array} \)

Convertendo in base 10: \( (110)_2 = 6 \ \to \ (110)_2 \times (110)_2 = 6 \times 6 = 36 = (100100)_2 \)

Verificate che

Esegui le seguenti divisioni con i numeri binari

...e converti il tutto in base 10 per verificare i risultati

\( \bullet \ (10101)_2 : (111)_2 \)

\( \begin{array}{c c c c c | c c c} \hline 1 & 0 & 1 & 0 & 1 & 1 & 1 & 1\\ \hline &1&1&1& {\color{blue}\downarrow}&1&1& \\ \hline =&=&1&1&1& \\ & & 1 & 1 & 1& \\ \hline & & = & = & = \end{array} \)

Quindi \( (10101)_2 : (111)_2 = (11)_2 \)

Convertendo i tre numeri binari in base 10: (10101)2 = 21; (111)2=7; (11)2=3 e 21:7=3

\( \bullet \ (11001)_2 : (101)_2 \)

\( \begin{array}{c c c c c | c c c} \hline 1 & 1 & 0 & 0 & 1 & 1 & 0 & 1 \\ \hline 1&0&1&{\color{red}\downarrow}& {\color{blue}\downarrow}&1&0&1 \\ \hline =&=&1&0&{\color{blue}\downarrow}& \\ & & 0 & 0 & {\color{blue}\downarrow}& \\ \hline & & 1 & 0 & 1 \\ & & 1 & 0 & 1 \\ \hline & & = & = & = & \end{array} \)

Ovvero \( (11001)_2 : (101)_2 = (101)_2 \)

Passando alla base 10 ne avremo la conferma, infatti:

\( \underbrace{(11001)_2}_{25} : \underbrace{(101)_2}_{5} = \underbrace{(101)_2}_{5} \)

Verificate il risultato delle seguenti divisioni tra numeri binari