1 / 14

Numeri Interi Negativi (con N bit)

Numeri Interi Negativi (con N bit). Modulo e segno Il primo bit indica il segno (0 positivo, 1 negativo), cui segue il numero positivo rappresentato coi restanti N-1 bit Complemento a due

uri
Download Presentation

Numeri Interi Negativi (con N bit)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Numeri Interi Negativi (con N bit) • Modulo e segno • Il primo bit indica il segno (0 positivo, 1 negativo), cui segue il numero positivo rappresentato coi restanti N-1 bit • Complemento a due • Un numero negativo -n è rappresentato attraverso la rappresentazione del suo complemento a 2, cioè il numero intero positivo 2N - n. • Anche in questo caso il primo bit indica il segno (0 positivo, 1 negativo); n è il valore assoluto del numero da convertire.

  2. Calcolo del complemento a 2 Il complemento a 2 di un numero in una rappresentazione ad N bit si definisce come: C(n) = 2N - n Es. N=8 bit; 2N = 256 n = 35 C(35) = 256 - 35 = 221 Ma … C(n) = 2N - n = (2N - 1) - n + 1 In binario … n = 00100011 (2N - 1) - n = 11011100 cioè lo stesso numero con le cifre invertite

  3. E quindi……….. C(n) = 2N - n = (2N - 1) - n + 1 Per calcolare il complemento a 2 di un numero 1. si rappresenta il numero in binario 2. Si invertono tutte le cifre (1->0 e v.versa) 3. Si somma 1. N.B. Il complemento del complemento di un numero è il numero stesso C (32) = 256 - 32 = 224; (uso 8 bit) C (C (32)) = 256 - (256 -32) = 32

  4. 0 0 1 0 0 0 1 1 1 0 1 0 0 0 1 1 0 0 1 0 0 0 1 1 1 1 0 1 1 1 0 0 + 1 = 1 1 0 1 1 1 0 1 Numeri Interi Negativi • Ad esempio avendo a disposizione un byte, il numero 35 è in binario: • Il numero –35 in modulo e segno: • Il numero –35 in complemento a due:

  5. Rappresentazione dello 0 • modulo e segno • rappresentazione ambigua • +0 = 00000000 • - 0 = 10000000 • complemento a due • rappresentazione univoca infatti il complemento a due di 00000000 è ancora 0 In una rappresentazione a N bit con complemento a 2 posso rappresentare i numeri da - (2N-1) a + 2N-1-1

  6. 1 1 1 0 1 1 0 + 0 1 0 1 0 1 = 1 1 1 0 - 1 0 1 0 1 1 0 1 0 1 = 1 0 0 1 Somma e Sottrazione 0 + 0 = 0 1 + 0 = 1 0 + 1 = 1 1 + 1 = 10  riporto prestito  In effetti, la sottrazione equivale alla somma del minuendo col complemento del sottraendo. All’interno del calcolatore somme e sottrazioni sono eseguite utilizzando la stessa operazione (circuito).

  7. Rappresentazione di Numeri Interi • Nel caso di informazione numerica può succedere di ottenere valori non rappresentabili: • Overflow indica un errore nella rappresentazione del risultato in quanto il numero di cifre disponibili è minore di quelle necessarie per rappresentare il numero (es. somma) • Underflow segnala solo un’approssimazione del risultato, si ha ad es. nella divisione quando il dividendo è minore del divisore. Il risultato in questo caso è zero.

  8. Esempio 1 (overflow) • Con 8 bit posso rappresentare: • interi positivi da 0 a 255 • interi con segno da -128 a +127 • Supponiamo di essere nel primo caso • e di avere 11111111 = (255)10 • 255 + 1 = ? • 1111111. • 11111111+ • 00000001 • -------- • 00000000 • Ma ho solo 8 bit => il risultato dell’operazione è 0! 1 1

  9. Esempio 2 (overflow) • Con 8 bit posso rappresentare: • interi positivi da 0 a 255 • interi con segno da -128 a +127 • Supponiamo di essere nel secondo caso • e di avere 01111111 = (127)10 • 127 + 1 = ???? • 1111111. • 01111111+ • 00000001 • --------- • 10000000 • Ma 10000000 è negativo! (-128)

  10. Esempio (underflow) Supponiamo di lavorare con interi senza segno Eseguiamo 12 * 15 15 Se eseguiamo prima la moltiplicazione 12 * 15 = 180 180/15 = 12 ok! Ma se eseguiamo prima la divisione 12/15 = 0 (non posso rappresentare numeri < 1) 0 * 15 = 0 ………

  11. Moltiplicazione • Si usa la tecnica detta somma e scorrimento • si riporta il moltiplicando in corrispondenza delle colonne dei bit a 1 del moltiplicatore e si effettua la somma • Conviene effettuare la somma parziale dopo ogni contributo NB Uno scorrimento a sinistra di un posto di un numero in una notazione posizionale equivale a moltiplicare il numero stesso per la base; uno scorrimento a destra ad una divisione Es. 1060 = 106 * 10 106 = 1060/10 11010 = 1101 * 10 1101 = 11010/10

  12. 1 0 1 1 x 1 1 0 1 1 0 1 1 + 0 0 0 0 0 1 0 1 1 + 1 0 1 1 1 1 0 1 1 1 + 1 0 1 1 1 0 0 0 1 1 1 1 Moltiplicazione

  13. Rappresentazione di grandezze continue • L’informazione può essere rappresentata in due forme: • Analogica • Digitale • Nella forma analogica una grandezza è rappresentata in modo continuo. • Nella forma digitale una grandezza è rappresentata in modo discreto. • La rappresentazione digitale usata all’interno di un calcolatore: • è una approssimazione della realtà (continua). • l’errore di approssimazione dipende dalla precisione (numero di bit) della rappresentazione digitale.

  14. Esercizi • Verificare che (10000101)2 = (133)10 • Data una rappresentazione intera a 8 bit senza segno, rappresentare e calcolare in binario le seguenti operazioni (decimali) : • 12 + 78 • 240 + 17 (che risultato “apparente” ottengo con 8 bit ???) • Data una rappresentazione a 8 bit con complemento a 2 • determinare il minimo numero rappresentabile • determinare il massimo numero rappresentabile • rappresentare e calcolare: • 125 - 33 • 125 + (-33) • 37 - 125

More Related