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