Domanda Risolto Complemento a 2

gius1805

Utente Bronze
13 Novembre 2020
42
22
0
38
Innanzitutto chiedo scusa se ho sbagliato categoria.
Devo convertire il numero binario codifica modulo e segno B=10110 e il numero in base 10 A=+37 in binario notazione complemento a due sul numero minimo di bit necessario per rappresentare entrambi.
Il numero A mi viene 0101000 ed è corretto.
Il numero B viene 1010.(Ho fatto il complemento di-6)
Per utilizzare il minimo di bit necessari a rappresentare entrambi il complemento a2 di B diventa 1000010.
E' corretto il procedimento?
Grazie in anticipo.
 
Il numero A mi viene 0101000 ed è corretto.
Codice:
s|32|16| 8| 4| 2| 1
--+--+--+--+--+--+--  => 32 + 8 = 40
0| 1| 0| 1| 0| 0| 0
Riconvertendolo in decimale abbiamo 40, ti aspetti 37. Direi che è sbagliato.

Il numero B viene 1010.(Ho fatto il complemento di-6)
Codice:
1010
---- <= complemento a 1
0101 +
   1
----
0110

8|4|2|1
-+-+-+- => 4 + 2 = 6
0|1|1|0
Corretto.

Per utilizzare il minimo di bit necessari a rappresentare entrambi il complemento a2 di B diventa 1000010.
Codice:
1000010
------- <= complemento a 1
0111101 +
      1 =
-------
0111110


s|32|16| 8| 4| 2| 1
--+--+--+--+--+--+--  => 32 + 16 + 8 + 4 + 2 = 62
0| 1| 1| 1| 1| 1| 0
Ti aspetti 6, trovi 62. Sbagliato.

Il 37 in binario diventa 010010, perché leggiamo dal basso verso l'alto i resti e aggiungiamo uno zero in testa che indica il segno.
Codice:
37 / 2 = 18 R 1  ^
18 / 2 =  9 R 0  |
9 / 2 =  4 R 1  |
4 / 2 =  2 R 0  |
2 / 2 =  1 R 0  |
1 / 2 =  0 R 1  |

Il -6 in binario diventa giustamente 1010, ma se lo vuoi rappresentare su 6 bit devi aggiungere tanti uni a sinistra.
In alternativa, parti dal 6 rappresentato su 6 bit e poi fai il complemento a due, in questo modo
Codice:
000110
------ <= complemento a 2
111001 +
     1
------
111010
 
  • Mi piace
Reazioni: gius1805