Esercizi su Codici e Rappresentazione Informazione Numerica




Esercizio 1



Alcuni semplici esercizi (in inglese), sulla rappresenzazione dei numeri.





Esercizio 2

Si consideri di avere a disposizione un elaboratore con parole di 16 bit che usa per i numeri negativi una rappresentazione in complemento a due.
Si dica per quali numeri e' possibile fornire una rappresentazione secondo le convenzioni di cui sopra. Per i numeri per cui tale rappresentazione e' possibile, fornire la rappresentazione di
-128   +35700  +32767  -65000 +105
  • Soluzione (by F. Cascio).



    Esercizio 3

    Sia data la seguente stringa di 12 cifre binarie:
    101101110000
    
    (1) Trovare il valore della stringa interpretata come:
    (2) Convertire in base 8 i valori assoluti dei numeri ricavati nei casi (a) e (b), e sommarli


  • Soluzione.




    Esercizio 4

    Siano date le seguenti relazioni fra numeri in base diversa: Determinare le basi X, S, W, Z.

  • Soluzione (non controllata).




    Esercizio 5

    Completare le due seguenti tabelle affinche' indichino il risultato ed il riporto (in base 4) per la moltiplicazione e la somma delle cifre della base 4 (0,1,2,3).
            +   0    1    2    3                  *   0    1    2    3
    
            0  -/-  -/-  -/-  -/-                 0  -/-  -/-  -/-  -/-
    
            1  -/-  -/-  -/-  -/-                 1  -/-  -/-  -/-  -/-
    
            2  -/-  -/-  -/-  -/-                 2  -/-  -/-  -/-  -/-
    
            3  -/-  -/-  -/-  -/-                 3  -/-  -/-  -/-  -/-
    
    
    Utilizzare tali tabelle per eseguire la moltiplicazione (3123)base4 * (323)base4 con l'algoritmo classico per la moltiplicazione.
  • Soluzione.


    Esercizio 6

    Presa la rappresentazione di un numero negativo utilizzando la codifica in complemento a due con n cifre, dimostrare che la rappresentazione dello stesso numero, ma con la codifica in complemento a due con n+m cifre, si ottiene aggiungendo m volte "1" alla sinistra.

  • Soluzione.


    Esercizio 7
    Si condideri la seguente stringa di 8 bit:
                                 10101010
    
    ottenuta applicando una funzione di codifica ad un numero n.
    Dire qual'e' il valore di n (e come si e' ottenuto) quando la codifica e':
  • Soluzione.

    Esercizio 8

    (a) Si consideri di avere a disposizione un elaboratore con parole di 10 b it che usa per i numeri negativi una rappresentazione in complemento a due.
    Si dica per quali numeri e' possibile fornire una rappresentazione secondo le convenzioni di cui sopra. Per i numeri per cui tale rappresentazione e' possibile, fornire la rappresentazione di
    -128  -733 +105
    
    (b) Fornire la dimostrazione di correttezza dell'algoritmo di complementazione di un n umero rappresentato in complemento a 2. Dimostrare cioe' che, data la rappresentazione di un numero in complemento a due, la rappresentazione del suo opposto si ottiene lasciando inalterati gli 0 meno significativi fino all'1 meno significativo compreso, ed applicando poi la negazione logica al resto delle cifre.
  • Soluzione.

    Esercizio 9

    Dimostrare che nella codifica in complemento a due dei numeri interi la rappresentazione dei i numeri positivi ha "0" come cifra piu' a sinistra, mentre quella dei numeri negativi "1".


  • Soluzione.

    Esercizio 10
    Descrivere l'algoritmo che, dato un numero naturale n, fornisca la sua rappresentazione posizionale in base B. Dimostrarne la correttezza.

    Esercizio 11
    Fornire la definizione di Codice. Cos'e' un codice ad espansione? Descrivere brevemente uno dei possibili codici ad espansione.

    Esercizio 12
    Si consideri il numero naturale la cui rappresentazione posizionale in base 8 e' 274.
    Lo si rappresenti in base 7
    Lo si rappresenti poi in base 2 nel modo piu' veloce possibile.
    Giustificare la risposte.
  • Soluzione.

    Esercizio 13

    Un semplice algoritmo per passare dalla notazione posizionale binaria a quella esadecimale e' il seguente: Dividiamo la stringa della rappresentazione binaria in blocchi da 4 bit (partendo da destra) e per ogni blocco consideriamo la cifra esadecimale corrispondente al numero rappresentato dai vari blocchi.
    Dimostrare la correttezza di tale algoritmo.


    Esercizio 14
    Descrivere l'isomorfismo di Cantor tra N ed NxN.

    Si consideri l'alfabeto A={a,c}. Associamo inoltre ad 'a' il numero 0 ed a 'c' il numero 2. Dire quindi (descrivendo il procedimento seguito) qual e' la codifica della stringa "aac" utilizzando l'isomorfismo di Cantor come descritto nel testo del corso. Si determini, inoltre, se possibile, la stringa codificata dal numero 18.
  • Soluzione.



    Esercizio 15
    Dimostrare che la rappresentazione di (n mod B) si ottiene prendendo la cifra piu' a destra della rappresentazione in notazione posizionale, in base B, di n.
  • Soluzione.


    Esercizio 16
    Descrivere un efficiente algoritmo di conversione da base 2 a base 8 e giustificarne formalmente la correttezza.
  • Soluzione.


    Esercizio 17
    Fornire la definizione di codice in complemento a due per numeri interi ed un semplice algoritmo per passare dalla rappresentazione in complemento a due di un numero n a quella di -n.


    Esercizio 18
    Definire alcuni codici ad espansione.


    Esercizio 19
    Giustificare formalmente la correttezza del seguente algoritmo di conversione da base 4 a base 2:
    Si sostituisce ogni cifra della rappresentazione in base 4 con la coppia di cifre binarie che rappresenta, in base 2 il numero associato alla cifra della base 4. (Es.: (322)4 = (111010)4).
  • Soluzione.


    Esercizio 20
    Si consideri la seguente stringa di 8 bit:
                                 10101010
    
    ottenuta applicando una funzione di codifica ad un numero n.
    Dire qual e' il valore di n (e, sinteticamente, come si e' ottenuto) quando la codifica e':
  • Soluzione.


    Esercizio 21
    Fornire brevemente la definizione di codice ad espansione con configurazione di espansione. Fornire un codice ad espansione con configurazione di espansione per l'insieme {pippo, pluto, paperino, paperoga, minni} utilizzando due formati: un bit e tre bit. Qual e' il vantaggio, in questo caso, rispetto ad un codice a formati multipli predefiniti?
  • Soluzione.


    Esercizio 22
    (a) Si dimostri, descrivendo l'isomorfismo di Cantor, che N (i numeri naturali) ed NxN (l'insieme delle coppie di numeri naturali) hanno la stessa cardinalita'.

    (b) Si definisca una codifica (e decodifica) per l'insieme {a,c,b,d}+ utilizzando l'isomorfismo di Cantor.


    Esercizio 23
    Fornire la rappresentazione in base nove del numero rappresentato in base tre dalla seguente sequenza di cifre
    10002102
    Non si deve passare dalla rappresentazione in base 10.
    Giustificare la risposta nel modo piu' completo possibile.
  • Soluzione.


    Esercizio 24
    Fornire la definizione di codice in complemento alla base B per i numeri interi.


    Esercizio 25
    Fornire la definizione di codice a lunghezza variabile e descrivere un codice ad espansione.



    Esercizio 26
    Sia data la seguente stringa di 6 cifre binarie:

    110000

    Trovare il valore della stringa interpretata come intero senza segno (numero naturale), e come intero negativo in complemento a due. Convertire in base 8 i valori assoluti dei numeri ricavati nei due casi precedenti, e sommarli, restituendo il risultato in notazione posizionale binaria.
  • Soluzione.

    Esercizio 27
    Che cosa e' codificato con la seguente stringa di cifre binarie?
    1001001
  • Soluzione.

    Esercizio 27
    Definire formalmente il codice in complemento a due per i numeri interi.

    Esercizio 28
    Fornire un esempio di codice a espansione con configurazione di espansione.
  • Soluzione.

    Esercizio 29
    Siano X e Y numeri negativi. Si dimostri che
    codZc2(X - Y) = codZc2(X) (+) codZc2(-Y)
    (Dove con "(+)" tra rappresentazioni intendiamo il normale algoritmo di somma cifra per cifra con riporto e risultato troncato a p cifre, mentre con '+' tra numeri intendiamo la funzione matematica binaria di addizione)

    Esercizio 30
    Supponiamo di voler utilizzare un codice a lunghezza variabile con quattro formati predefiniti:
    4 bit
    8 bit
    12 bit
    16 bit

    Dire, giustificando le risposte, qual e' la cardinalita' massima di un insieme per il quale si possa definire un codice ad espansione nel caso di:
    1) formati multipli predefiniti
    2) espansione con cifra di espansione
    3) espansione con configurazione di espansione
  • Soluzione.

    Esercizio 31
    Fornire le definizioni di codice, codice a lunghezza variabile e codice a lunghezza fissa. Cosa caratterizza i codici ad espansione tra quelli a lunghezza variabile?

    Esercizio 32
    Dimostrare che il seguente algoritmo, che prende in input un numero naturale, produce le cifre cp-1cp-2....c2c1c0 della sua codifica in notazione posizionale in base B.
    input n
    
    val := n
    i:= 0
    
    REPEAT
      quoz := val
      val := quoz div B
      ci := quoz mod B
      i := i+1
    UNTIL (quoz < B)
    


    Esercizio
    Dimostrare che, per x e y numeri positivi,
    codZc2p(-x) (+) codZc2p(-y) = codZc2p(-x-y)
    Dove (+) rappresenta l'algoritmo di somma per i numeri naturali codificati in notazione posizionale.
  • Soluzione.

    Esercizio XX
  • Soluzione.

    Esercizio XX
  • Soluzione.

    Esercizio XX
  • Soluzione.