Sottrazione binaria - Comparazione fra numeri binari
Salve a tutti,
nel mio corso di studi sto affrontando le operazioni tra numeri binari senza segno...ed in particolare sto affrontando la sottrazione binaria. Le regole della sottrazione sono:
$0-0=0$
$1-0=1$
$1-1=0$
$0-1=1$ con richiamo di $1$ da sinistra
il numero di bit è indefinito, e mi viene detto di calcolare la sottrazione $10000011-11000000$... ad essere precisi non riesco a capire quale dovrebbe essere il risultato, cioè riesco ad applicare le regole ma sembrerebbe il calcolo non finire mai... Qualcuno potrebbe cortesemente fornirmi una qualche delucidazione in merito.
Ringrazio anticipatamente!
Cordiali saluti
nel mio corso di studi sto affrontando le operazioni tra numeri binari senza segno...ed in particolare sto affrontando la sottrazione binaria. Le regole della sottrazione sono:
$0-0=0$
$1-0=1$
$1-1=0$
$0-1=1$ con richiamo di $1$ da sinistra
il numero di bit è indefinito, e mi viene detto di calcolare la sottrazione $10000011-11000000$... ad essere precisi non riesco a capire quale dovrebbe essere il risultato, cioè riesco ad applicare le regole ma sembrerebbe il calcolo non finire mai... Qualcuno potrebbe cortesemente fornirmi una qualche delucidazione in merito.
Ringrazio anticipatamente!
Cordiali saluti
Risposte
Il "problema" è dato dal minuendo minore del sottraendo. È come in decimale, come si fa in questi casi? In pratica, basta invertirli e cambiare il segno alla differenza.
Nella notazione senza segno l'opposto di un numero si ottiene complementando a 2 (nel caso binario).
Questo si fa trasformando gli 0 in 1 e viceversa (complemento a 1) e sommando 1 (complemento a 2), oppure, più velocemente, basta sottrarre a 2 la prima cifra non nulla da destra e a 1 le altre.
Nel caso specifico, avremo $11000000 - 10000011 = 00111101$. Il complemento di $00111101$ è $11000011$ che è la soluzione.
Un'altra idea potrebbe essere quella di evitare la sottrazione considerando che $a - b = a + (-b)$.
In questo caso si calcola il complemento di $11000000$, che è $01000000$, e si somma con $10000011$. Il risultato è lo stesso di sopra.
Saluti!
Nella notazione senza segno l'opposto di un numero si ottiene complementando a 2 (nel caso binario).
Questo si fa trasformando gli 0 in 1 e viceversa (complemento a 1) e sommando 1 (complemento a 2), oppure, più velocemente, basta sottrarre a 2 la prima cifra non nulla da destra e a 1 le altre.
Nel caso specifico, avremo $11000000 - 10000011 = 00111101$. Il complemento di $00111101$ è $11000011$ che è la soluzione.
Un'altra idea potrebbe essere quella di evitare la sottrazione considerando che $a - b = a + (-b)$.
In questo caso si calcola il complemento di $11000000$, che è $01000000$, e si somma con $10000011$. Il risultato è lo stesso di sopra.
Saluti!
Salve probid,
quindi devo per forza ricorrere ad altre codifiche per il numero.. non è possibile farlo con le sole regole della sottrazione...
Grazie tanto.
Cordiali saluti
"probid":
Il "problema" è dato dal minuendo minore del sottraendo. È come in decimale, come si fa in questi casi? In pratica, basta invertirli e cambiare il segno alla differenza.
Nella notazione senza segno l'opposto di un numero si ottiene complementando a 2 (nel caso binario).
Questo si fa trasformando gli 0 in 1 e viceversa (complemento a 1) e sommando 1 (complemento a 2), oppure, più velocemente, basta sottrarre a 2 la prima cifra non nulla da destra e a 1 le altre.
Nel caso specifico, avremo $11000000 - 10000011 = 00111101$. Il complemento di $00111101$ è $11000011$ che è la soluzione.
Un'altra idea potrebbe essere quella di evitare la sottrazione considerando che $a - b = a + (-b)$.
In questo caso si calcola il complemento di $11000000$, che è $01000000$, e si somma con $10000011$. Il risultato è lo stesso di sopra.
Saluti!
quindi devo per forza ricorrere ad altre codifiche per il numero.. non è possibile farlo con le sole regole della sottrazione...


Grazie tanto.
Cordiali saluti
Salve probid,
però senza convertire il minuendo ed il sottraendo in base $10$ come mi potrei accorgere che un numero binario è maggiore rispetto ad un altro!!???
Ringrazio anticipatamente!
Cordiali saluti
P.S.=Intanto cambio titolo del post
però senza convertire il minuendo ed il sottraendo in base $10$ come mi potrei accorgere che un numero binario è maggiore rispetto ad un altro!!???
Ringrazio anticipatamente!
Cordiali saluti
P.S.=Intanto cambio titolo del post
Anzitutto, la cifra più significativa $1$ indica che il numero è negativo, $0$ che è positivo.
I confronti poi si possono fare intuitivamente considerando che più un bit è a sinistra, maggiore è la potenza di 2 che esso rappresenta.
Comunque il secondo "metodo" sopra è immediato e permette di evitare certi controlli. Ogni volta che c'è una sottrazione, basta complementare il sottraendo per passare alla somma
Saluti!
I confronti poi si possono fare intuitivamente considerando che più un bit è a sinistra, maggiore è la potenza di 2 che esso rappresenta.
Comunque il secondo "metodo" sopra è immediato e permette di evitare certi controlli. Ogni volta che c'è una sottrazione, basta complementare il sottraendo per passare alla somma

Saluti!
Salve probid,
mi sà che per valutare quale dei due sia maggiore o minore li convertirò in base 10 entrambi!!
Cordiali saluti
"probid":
Anzitutto, la cifra più significativa $1$ indica che il numero è negativo, $0$ che è positivo.
I confronti poi si possono fare intuitivamente considerando che più un bit è a sinistra, maggiore è la potenza di 2 che esso rappresenta.
Comunque il secondo "metodo" sopra è immediato e permette di evitare certi controlli. Ogni volta che c'è una sottrazione, basta complementare il sottraendo per passare alla somma
Saluti!
mi sà che per valutare quale dei due sia maggiore o minore li convertirò in base 10 entrambi!!
Cordiali saluti
Perché convertirli in base 10? La soluzione canonica è quella data da probid, la conversione in base 10 è molto più laboriosa da fare ogni volta