Esercitazione 1 2014/15 - e-Learning
Transcript
Esercitazione 1 2014/15 - e-Learning
Esercitazione E i i 1 Codifica e Rappresentazione dell’Informazione Claudia Raibulet [email protected] E Esercizio i i 1 ¾ Convertire C ti il numero decimale d i l 99 in i binario bi i e poii questo in esadecimale. 9910 = 11000112 9910 = 0x63 = 6316 Eserci io 2 Esercizio ¾ Convertire i seguenti numeri esadecimali in binario: 0x52 = 0101 00102 0x1010101 = 0001 0000 0001 0000 0001 0000 00012 0xF3B4C = 1111 0011 1011 0100 11002 Esercizio 3 ¾ ¾ ¾ Se il numero 100 in base dieci fosse rappresentato in binario, quale sarebbe il valore del suo bit in posizione 3 (ovvero 2^2)? E nella posizione 5 (ovvero 2^4)? Rispondere senza effetuare la conversione! 1, perchè 100 = 64 + 32 + 4 = 2 1 2^66 +2 +2^55 +2 +2^22 0, perchè 100 = 64 + 32 + 4 = 2^6 +2^5 +2^2 Esercizio 4 ¾ Si chiede di effettuare le conversioni: • Dal binario in ottale e esadecimale: 1100111011100112 = ?8 = ? 16 • Dall’esadecimale in ottale e binario: 0x71A916 = ?8 = ? 2 • Dall’ottale in esadecimale e binario: 7368 = ?16 = ? 2 Esercizio 5 ¾ Convertire i seguenti numeri decimali in binario in modulo e segno su 8 bit: -20 20 = -114 = -59 59 = 33 = 10 = 1001 0100MS 11110010MS 1011 1011MS 0010 0001MS 0000 1010MS Esercizio 6 ¾ Convertire i seguenti numeri decimali in binario in complemento a 2 su 8 bit: -20 = -114 = -59 = 33 = 10 = 11101100CA2 10001110CA2 1100 0101CA2 0010 0001CA2 0000 1010CA2 Esercizio 7 ¾ Date le seguenti coppie di rappresentazioni considerarle prima i in i MS e poii in i CA2; CA2 per ciascuna i coppia i sii determini qual’è il maggiore tra i valori rappresentati: a)) b) c)) d) 01001 10110 101 11111 <?> ? <?> <?> <?> 10001 11010 11101 10001 Esercizio 8 ¾ Si chiede di calcolare la somma tra i seguenti numeri in esadecimale: 0x789 + 0x987 = 0x1110 Soluzione: 9+7 = 16 -> 0 ((=16 16 - 16) con riporto 1 8+8+riporto 1 = 17 -> 1 (=17 – 16) con riporto 1 7+9+ riporto 1 = 17 -> > 1 (=17 – 16) con riporto 1 riporto 1 T b ll ASCII – in Tabella i esadecimale d i l American Standard Code for Information Interchage Esercizio 9 ¾ Codificare in numeri esadecimali e decimali secondo lo standard ASCII le seguenti strighe: Esadecimale: Bit 2012 x=7*(y+z) 7*( + ) = 42 69 74 = 32 30 31 32 = 78 3D 37 2A 28 79 2B 7A 29 Decimale: Bit 2012 x=7*(y+z) = 066 105 116 = 050 000 049 050 = 120 051 055 042 040 121 043 122 041 Esercizio 10 ¾ Si chiede di effettuare le seguenti conversioni: 43210 = ? 5 125 = ? 10 5345 = ? 10 = 32125 = 710 = ???10 Esercizio 11 ¾ Si chiede di effettuare effett are la seguente seg ente conversione: con ersione: 1238 = ?5 Indicazione: si trasforma pprima il numero in base 10 e poi in base 5 1238 = 8310 = 3135 Esercizio 13 ¾ Si chiede di rappresentare i seguenti numeri in eccesso 128: -20 = 20 = 0110 1100 1001 0100 Esercizio 14 ¾ Si chiede quali sono i numeri in decimali corrispondenti alla rappresentazione seguente in eccesso 128: 0000 0000 0001 1100 = -128 = -100 Esercizio 15 ¾ ¾ Si abbia una applicazione embedded in cui si devono fare delle operazioni aritmetiche e sia noto in anticipo che i valori di partenza, i risultati intermedi ed anche quelli finali stanno nell nell'intervallo intervallo [12345678, 98745678]. E E' anche noto che la risoluzione richiesta per i calcoli e' il centesimo di unita unita'.. Per questa applicazione non ee' ipotizzabile ricorrere ad un hardware predisposto ad-hoc, per motivi pe ot v ddi costo e di d tempi te p di d sviluppo. sv uppo. Pertanto e ta to lee uniche alternative sono quelle costituite da usare delle macchine esistenti sul mercato. Si determini se la aritmetica intera a 32 bit e/o quella a 64 bit bit, usate come base per sviuppare calcoli in virgola fissa, siano adeguate per l'applicazione. Esercizio 15 - Soluzione ¾ ¾ ¾ ¾ ¾ ¾ accuratezza richiesta per le operazioni aritmetiche: 1/100 = 0.01 ((base 10)) codici che si possono rappresentare: 2^32 = 2^10 * 2^10 * 2^10 *2^2 = 1024 * 1024 *1024 *4 = 4294967296 oppure codici di i che h sii possono rappresentare: t 2^64 = 1.844674407370955e+19 = 18446744073709550000 intervallo di valori da rappresentare: 98745678-12345678 98745678 12345678 = 86400000 accuratezza disponibile su 32 bit: 86400000 / 4294967296 = 0.0201165676116943 0 0201165676116943 => > non sufficiente accuratezza disponibile su 64 bit: 86400000 / ((18446744073709550000 = 4294967296 * 4294967296)) = 0.000000000004684 = 4.68 * 10^(-12) => ok! Esercizio 16 Quale è la rappresentazione in virgola mobile per il seguente numero decimale: d i l 3 13,25 , = 1101,01 , = 1,10101*2 , La rappresentazione in virgola mobile su 32 bit: ¾ 1 bit di segno g ¾ 8 bit per l’esponente (eccesso 128) ¾ 23 bit per la mantissa S E 8 bit M 23 bit 3130 2928 2726 25 24 2322 21 201918 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 10000011 1010100000000000000000 Esercizio 16 - Soluzione ¾ La parte intera si considera separatamente • 13 in base 10 ->1101 in base 2 ¾ La parte decimale si considera separatamente e si multiplica per 2 come segue: • • • • • 0.25 * 2 = 0.5 0.5 * 2 = 1.0 0.0 * 2 = 0.0 Si prende solo la parte intera di ogni risultato Si scrive il numero partendo dalla prima parte intera ottenuta Esercizio 17 ¾ ¾ Quale valore reale in virgola mobile è rappresentato dalla seguente sequenza di bit? 1 10000001 11000000000000000000000 –segno: MSB = 1 ⇒ numero negativo –esponente: p 1000 00012 = 12910 - in codice eccesso 128 129 – 128 = 1 -parte p frazionaria della mantissa: 110000000000000000000002 = 0,7510 0.11 = 1*2-11+1*2-22= 0,7510 -Risultato: ((-1)*(1+0.75)*2 ) ( ) 1= - 1.75*2 = -3.5 Esercizio 18 ¾ ¾ Si abbia una applicazione embedded in cui si devono fare delle operazioni aritmetiche e sia noto in anticipo che i valori di partenza, i risultati intermedi ed anche quelli finali stanno nell'intervallo nell intervallo [12345678, [12345678 98745678]. 98745678] E E' anche noto che la risoluzione richiesta per i calcoli e' il centesimo di unita'. Per questa applicazione q pp non e' ipotizzabile p ricorrere ad un hardware predisposto ad-hoc, per motivo di costo e di tempi di sviluppo. Pertanto le uniche alternative sono quelle delle macchine esistenti sul mercato. Si determini se usando la rappresentazione in virgola mobile a 32 bit con 8 bit per la rappresentazione in eccesso 128 dell'esponente e 24 bit per la rappresentazione della mantissa con modulo e segno, siano adeguate per l'applicazione. Esercizio 18 - Soluzione ¾ ¾ 98745678 in base 10 -> 101 1110 0010 1001 0101 0100 1110 in base 2 Esercizio 18 - Soluzione ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ accuratezza per le operazioni aritmetiche = 1/100 = 0.01 (base 10) 98745678 -> > 101 1110 0010 1001 0101 0100 1110 in base 2 = 1,01 1110 0010 1001 0101 0100 1110 * 2^26 Il numero ee' positivo -> il bit di segno = 0 L' esponente in eccesso 128: 128 + 26 = 10011010 Mantissa su 23 bit: 01 1110 0010 1001 0101 0100 1110 -> gli ultimi 3 bit non possono essere rappresentati Si ottiene la seguente rappresentazione: • 0 10011010 01111000101001010101001 che in realta realta' corrisponde al numero: 1,01111000101001010101001 * 2^26 = 101 1110 0010 1001 0101 00100 00 1000 000 in base 2 -> 987 98746432 6 3 in base 100 98746432- 98745678 = 754