Rappresentazione dei numeri interi con segno
In questa pagina 6
Con bit si hanno configurazioni. Per gli interi senza segno vanno da a (vedi Sistemi di numerazione posizionaliNotazione posizionale in base b; conversioni tra base 10, 2, 8 e 16 per interi (divisioni successive) e per parti frazionarie (moltiplicazioni successive); numeri periodici in binario.Sistemi di numerazione posizionali →); per rappresentare anche i negativi si sceglie una convenzione. In tutte le convenzioni sotto, l'intervallo è circa .
Modulo e segno
Il bit più significativo è il segno (0 = positivo, 1 = negativo), gli altri bit sono il modulo.
- 8 bit: , .
- Intervallo: (8 bit: ).
- Difetti: due zeri ( e ) e la somma richiede circuiti diversi a seconda dei segni.
Complemento a 1
Il negativo si ottiene invertendo tutti i bit di .
- 8 bit: , .
- Intervallo come modulo e segno, ancora con due zeri ( e ).
- Nella somma il riporto in uscita va risommato al risultato (end-around carryriporto che esce dal bit più significativo e viene aggiunto al bit meno significativo).
Complemento a 2
È la rappresentazione usata da tutti i processori. Il bit più significativo ha peso negativo:
Equivalentemente: un negativo è rappresentato dal numero senza segno .
- Intervallo: , asimmetrico (8 bit: ; 16 bit: ; 32 bit: circa ).
- Uno zero solo; MSB = 1 ⇔ numero negativo.
- La somma è la stessa degli interi senza segno: un solo sommatore per entrambi (vedi Aritmetica binariaSomma e sottrazione in binario, overflow per senza segno (riporto) e per complemento a 2 (segni), flag del processore, moltiplicazione per somme e scorrimenti, algoritmo di Booth, divisione, shift logici e aritmetici.Aritmetica binaria →).
Opposto (vale in entrambi i versi): si invertono tutti i bit e si somma 1.
Scorciatoia: partendo da destra si copiano i bit fino al primo 1 compreso, poi si invertono tutti gli altri ().
Da complemento a 2 a decimale. Se MSB = 0 si legge come senza segno. Se MSB = 1 si usa il peso negativo:
oppure si calcola l'opposto () e si mette il meno.
Caso limite: l'opposto di a 8 bit è ancora : non è rappresentabile.
Estensione del segno. Per passare da a bit si replica il bit di segno a sinistra: su 8 bit diventa su 16 bit ; diventa . Serve per esempio quando il processore carica un byte con segno in un registro a 32 bit.
Esercizio svolto in aula: Esercizio 1 · conversioni in complemento a 2 su 4 bit.
Eccesso K (polarizzazione)
Si memorizza come intero senza segno; di solito o .
- Eccesso 128 su 8 bit: ; ; .
- L'ordine dei codici coincide con l'ordine dei valori: il confronto si fa come tra senza segno. Per questo si usa per l'esponente in Numeri in virgola mobile IEEE 754Virgola fissa e virgola mobile; formato IEEE 754 a 32 e 64 bit (segno, esponente in eccesso 127, mantissa con 1 implicito); conversioni svolte nei due versi; valori speciali, denormalizzati, intervallo, precisione e arrotondamento.Numeri in virgola mobile IEEE 754 → (con ).
Confronto su 4 bit
| Bit | Senza segno | Modulo e segno | Compl. a 1 | Compl. a 2 | Eccesso 8 |
|---|---|---|---|---|---|
| 0000 | 0 | +0 | +0 | 0 | −8 |
| 0011 | 3 | +3 | +3 | +3 | −5 |
| 0111 | 7 | +7 | +7 | +7 | −1 |
| 1000 | 8 | −0 | −7 | −8 | 0 |
| 1011 | 11 | −3 | −4 | −5 | +3 |
| 1111 | 15 | −7 | −0 | −1 | +7 |
La stessa sequenza di bit ha significati diversi: il valore dipende dalla convenzione con cui la si legge.
Errori tipici
- Calcolare l'opposto in complemento a 2 invertendo i bit senza sommare 1 (si ottiene il complemento a 1).
- Estendere un negativo aggiungendo zeri a sinistra: vale , non .
- Dimenticare l'asimmetria: con 8 bit il minimo è , il massimo .
Versione ripasso
Con bit ci sono configurazioni; senza segno da a (Sistemi di numerazione posizionaliNotazione posizionale in base b; conversioni tra base 10, 2, 8 e 16 per interi (divisioni successive) e per parti frazionarie (moltiplicazioni successive); numeri periodici in binario.Sistemi di numerazione posizionali →).
Convenzioni
- Modulo e segno: MSB = segno. . Intervallo , due zeri.
- Complemento a 1: = bit invertiti (). Due zeri; il riporto uscente va risommato (end-around carryriporto che esce dal MSB e viene aggiunto al bit meno significativo).
- Complemento a 2: MSB di peso negativo, ; è il senza segno . Intervallo asimmetrico (8 bit: ), uno zero, MSB negativo, stesso sommatore dei senza segno (Aritmetica binariaSomma e sottrazione in binario, overflow per senza segno (riporto) e per complemento a 2 (segni), flag del processore, moltiplicazione per somme e scorrimenti, algoritmo di Booth, divisione, shift logici e aritmetici.Aritmetica binaria →).
- Eccesso K: si memorizza come senza segno; l'ordine dei codici è quello dei valori. Eccesso 128: , . Esponente di Numeri in virgola mobile IEEE 754Virgola fissa e virgola mobile; formato IEEE 754 a 32 e 64 bit (segno, esponente in eccesso 127, mantissa con 1 implicito); conversioni svolte nei due versi; valori speciali, denormalizzati, intervallo, precisione e arrotondamento.Numeri in virgola mobile IEEE 754 → ().
Complemento a 2: operazioni
- Opposto: inverti i bit e somma 1: . Scorciatoia: da destra si copiano i bit fino al primo 1 compreso, poi si invertono gli altri.
- A decimale: . Caso limite: l'opposto di è .
- Estensione del segno: si replica il MSB: su 16 bit .
- Esercizio: Esercizio 1 · conversioni in complemento a 2 su 4 bit.
- Su 4 bit
1000: 8 senza segno, , , , eccesso 8 (modulo-segno, compl. a 1, compl. a 2).
Errori tipici: invertire senza sommare 1; estendere un negativo con zeri (); dimenticare l'asimmetria.