1\) Trasformare da binario a base ottale \(usiamo 9 cifre binarie per

Transcript

1\) Trasformare da binario a base ottale \(usiamo 9 cifre binarie per
ESERCIZI DI PREPARAZIONE AL IL PRIMO COMPITO INTERMEDIO
1) Trasformare da binario a base ottale (usiamo 9 cifre binarie per comodità):
101010011
Soluzione:
dividiamo in triadi:
101 010 011
applichiamo il metodo delle divisioni successive (se partiamo dalla triade più a sinistra, sarà facile ricordarci poi
che questa rappresenta la ciframeno significativa, in tutte le basi):
011:8=1 resto 3
010:8=1 resto 2
101:8=96 resto 5
al solito, si prendono i resti, per cui il numero in base 8 è:
523
infatti:
3*80+2*81+5*82=339
1*28+0*27+1*26+0*25+1*24+0*23+0*22+1*21+1*20=256+64+16+2+1=339
Lo stesso procedimento, ovviamente, si adotta per 8 cifre binarie (si divide in triplette partendo da destra,
l’ultima sarà una coppia). Es.
01 010 011
2) Trasformare 10000000101 da binario a esadecimale, ricordando che A equivale a 11 (scatta la decina), cioé,
in modo più semplice, si ha la corrispondenza:
esadecimale 0
1
2
3
decimale
0
1
2
3
binario
000 001 010 011
4
5
6
7
8
9
A
B
C
D
E
4
5
6
7
8
9
10
11
12
13
14
100 101 110 111 1000 1001 1010 1011 1100 1101 1110
Soluzione:
Si separa, questa volta, in gruppi di quattro cifre (il mono significativo è sempre quello più a destra):
100 0000 0101
0101:16=6 resto 5
0000:16=0 resto 0
100:16=6 resto 4
quindi il numero, in base esadecimale, sarà: 405
facciamo due conti:
1*20+0*21+1*22+0*23+0*24+0*25+0*26+0*27+0*28+0*29+0*210= 1+4+1024=1029
5*160+0*161+4*162=5+4*256=5+1024=1029
Anche in questo caso si suddivide in gruppi da 4 cifre anche per una rappresentazione binaria in 8 bit:
1000 0101
F
15
1111
3) Trasformiamo il numero 1.974.950 da decimale a esadecimale
utilizziamo sempre il metodo delle divisioni successive:
1974950:16=123434 resto 6
123434:16=7714 resto 10 (corrisponde alla A)
7714:16=482 resto 2
482:16=30 resto 2
30:16=1 resto 14 (corrisponde alla E)
1:16=0 resto 1
quindi si ha (sempre il meno significativo a destra): 1E22A6
Facciamo la prova:
6*160+A*161+2*162+2*163+E*164+1*165=6*160+10*161+2*162+2*163+14*164+1*165=
=6*1+10*16+2*256+2*4096+14*65536+1*1048576=6+160+512+8192+917504+1048576=1974950
4) Trasformiamo l’esadecimale 1E22A6 in binario
si prende ogni cifra (sempre a destra la meno significativa) e si divide per 2:
6:2=3 resto 0
3:2=1 resto 1
1:2=0 resto 1 quindi ho 0110 (cioè110 si completa con lo 0 nella posizione più significativa)
A:2=5 resto 0 (A vale 10)
5:2=2 resto 1
2:2=1 resto 0
1:2=0 resto 1 quindi ho 1010
2:2=1 resto 0
1:2=0 resto 1 quindi ho 0010
E:2=7 resto 0 (E equivale a 14)
7:2=3 resto 1
3:2=1 resto 1
1:2=0 resto 1 quindi ho 1110
1:2=0 resto 1 quindi ho 1 (non serve completare a 4 cifre perché è il gruppo più a sinistra)
Il numero ottenuto è 111100010001010100110
5) Trasformare 123 da ottale a binario:
Soluzione:
in modo del tutto simile al caso esadecimale, si prende ogni cifra e si divide per 2, poi si completa la tripletta.
Partiamo sempre da destra con la meno significativa
3:2=1 resto 1
1:2=0 resto 1 si ottiene quindi 011, completando la tripletta
2:2=1 resto 0
1:2=0 resto 1 si ottiene quindi 010
1:2=0 resto 1 si ottiene quindi 1 (possiamo anche non completare, ma noi scriveremo 01 per arrivare a 8 bit)
Il risultato è:
01010011
ALTRI ESERCIZI:
1. trasformare il numero 230 da decimale a esadecimale (R:E6)
2. trasformare il numero 167 da decimale a ottale (R: 247)
3. trasformare il numero 146 da decimale a binario (R: 10010010)
4. trasformare il numero FA da esadecimale a decimale (R:250)
5. trasformare il numero 315 da ottale a decimale (R: 205)
6. trasformare il numero 00010011 da binario a decimale (R: 35)
7. trasformare il numero 7421249 da ottale a binario (R: 111100010001010100110)
8. trasformare il numero 12DCD4D da esadecimale a binario (R:1001011011100110101001101)
9. eseguire la somma 110011+11001 (R:1001100)
10. eseguire la somma 11011001110+11101 (R:11011100011)
11. eseguire la somma 111+111 (R: 1110)
12. eseguire la sottrazione 1000-1 (R111)
13. eseguire la sottrazione 10010-101 (R:1101)
14. eseguire la sottrazione 101001-10001 (R:11000)
15. eseguire il prodotto 11010*11 (R:1001110)
16. eseguire il prodotto 101010*10 (R:1010100)
17. dati A=False, B=True, C=True fornire il risultato dell’espressione logica not(A) and (B or C) or B
Scrivere tutti i passaggi. (R: True)
18. dati A=False, B=True, C=True fornire il risultato dell’espressione logica (A) and (not(B) or C) and B
Scrivere tutti i passaggi. (R: True)
Nota: nel compito le espressioni logiche saranno richieste solo con l’uso di AND, NOT e OR