Binario offset - Offset binary
Offset binario , indicato anche come eccesso-K , excess- N , eccesso-e , codice eccesso o rappresentazione polarizzata , è un metodo per rappresentazione numero con segno dove un numero con segno n è rappresentato dalla configurazione di bit corrispondente al numero unsigned n + K , K è il valore di polarizzazione o offset . Non esiste uno standard per l'offset binario, ma molto spesso il K per una parola binaria a n bit è K = 2 n -1 (ad esempio, l'offset per un numero binario a quattro cifre sarebbe 2 3 = 8). Ciò ha come conseguenza che il valore minimo negativo è rappresentato da tutti zeri, il valore "zero" è rappresentato da un 1 nel bit più significativo e zero in tutti gli altri bit, e il valore massimo positivo è rappresentato da tutti uno ( convenientemente, questo è lo stesso che usare il complemento a due ma con il bit più significativo è invertito). Ha anche la conseguenza che in un'operazione di confronto logico, si ottiene lo stesso risultato di un'operazione di confronto numerico in forma vera, mentre, nella notazione in complemento a due un confronto logico sarà d'accordo con un'operazione di confronto numerico in forma vera se e solo se i numeri essendo confrontati hanno lo stesso segno. Altrimenti il senso del confronto sarà invertito, prendendo tutti i valori negativi come maggiori di tutti i valori positivi.
Il codice Baudot a 5 bit utilizzato nei primi telegrafi multiplex sincroni può essere visto come un codice binario riflesso offset-1 ( eccesso-1 ) (Grigio) .
Un esempio storicamente importante di notazione offset-64 ( eccesso-64 ) era nella notazione a virgola mobile (esponenziale) nelle generazioni di computer IBM System/360 e System/370. Il "caratteristico" (esponente) assumeva la forma di un numero di sette bit in eccesso rispetto a 64 (il bit di ordine superiore dello stesso byte conteneva il segno del significante ).
L'esponente a 8 bit in Microsoft Binary Format , un formato in virgola mobile utilizzato in vari linguaggi di programmazione (in particolare BASIC ) negli anni '70 e '80, è stato codificato utilizzando una notazione offset-129 ( eccesso-129 ).
Lo standard IEEE per l'aritmetica in virgola mobile (IEEE 754) utilizza varie dimensioni dell'esponente, ma utilizza anche la notazione offset per il formato di ciascuna precisione. Insolitamente però, invece di usare "eccesso 2 n −1 " usa "eccesso 2 n -1 − 1" (cioè eccesso-15 , eccesso-127 , eccesso-1023 , eccesso-16383 ) che significa che invertendo il leader (alto -order) bit dell'esponente non convertirà l'esponente per correggere la notazione in complemento a due.
Il binario offset viene spesso utilizzato nell'elaborazione del segnale digitale (DSP). La maggior parte dei chip da analogico a digitale (A/D) e da digitale ad analogico (D/A) sono unipolari, il che significa che non possono gestire segnali bipolari (segnali con valori sia positivi che negativi). Una soluzione semplice a questo è polarizzare i segnali analogici con un offset CC pari alla metà della gamma del convertitore A/D e D/A. I dati digitali risultanti quindi finiscono per essere in formato binario offset.
La maggior parte dei chip CPU dei computer standard non è in grado di gestire direttamente il formato binario offset. I chip della CPU in genere possono gestire solo numeri interi con segno e senza segno e formati di valori in virgola mobile. I valori binari offset possono essere gestiti in diversi modi da questi chip CPU. I dati possono essere trattati solo come interi senza segno, richiedendo al programmatore di gestire lo zero offset nel software. I dati possono anche essere convertiti in formato intero con segno (che la CPU può gestire in modo nativo) semplicemente sottraendo lo zero offset. Come conseguenza del fatto che l'offset più comune per una parola di n bit è 2 n −1 , il che implica che il primo bit è invertito rispetto al complemento a due, non è necessario un passaggio di sottrazione separato, ma si può semplicemente invertire il primo po. Questa a volte è un'utile semplificazione nell'hardware e può essere utile anche nel software.
Tabella di offset binario per quattro bit, con complemento a due per il confronto:
| Decimale | Binario offset, K = 8 |
Complemento a due |
|---|---|---|
| 7 | 1111 | 0111 |
| 6 | 1110 | 0110 |
| 5 | 1101 | 0101 |
| 4 | 1100 | 0100 |
| 3 | 1011 | 0011 |
| 2 | 1010 | 0010 |
| 1 | 1001 | 0001 |
| 0 | 1000 | 0000 |
| −1 | 0111 | 1111 |
| -2 | 0110 | 1110 |
| -3 | 0101 | 1101 |
| −4 | 0100 | 1100 |
| −5 | 0011 | 1011 |
| −6 | 0010 | 1010 |
| −7 | 0001 | 1001 |
| −8 | 0000 | 1000 |
Il binario offset può essere convertito in complemento a due invertendo il bit più significativo. Ad esempio, con valori a 8 bit, il valore binario dell'offset può essere sottoposto a XOR con 0x80 per convertirlo in complemento a due. In hardware specializzato può essere più semplice accettare il bit così com'è, ma applicare il suo valore in senso inverso.
Codici correlati
| Codice | genere | Parametri | Pesi | Distanza | Controllo | Complemento | Gruppi di 5 | Aggiunta semplice | ||
|---|---|---|---|---|---|---|---|---|---|---|
| offset, k | Larghezza, n | Fattore, q | ||||||||
| 8421 codice | n | 0 | 4 | 1 | 8 4 2 1 | 1–4 | No | No | No | No |
| Codice nudità | 3 n + 2 | 2 | 5 | 3 | N / A | 2–5 | sì | 9 | sì | sì |
| Codice Stibitz | n + 3 | 3 | 4 | 1 | 8 4 −2 −1 | 1–4 | No | 9 | sì | sì |
| Codice diamante | 27 n + 6 | 6 | 8 | 27 | N / A | 3–8 | sì | 9 | sì | sì |
| 25 n + 15 | 15 | 8 | 25 | N / A | 3+ | sì | sì | ? | sì | |
| 23 n + 24 | 24 | 8 | 23 | N / A | 3+ | sì | sì | ? | sì | |
| 19 n + 42 | 42 | 8 | 19 | N / A | 3–8 | sì | 9 | sì | sì | |
|
|
|
|
|
|
Guarda anche
- Rappresentazioni di numeri con segno
- numero binario
- Eccesso di 3
- Eccesso di 128
- bias dell'esponente
- Codice Gray in eccesso
- Complemento di quelli
- Portatore offset binario
Riferimenti
Ulteriori letture
-
Gosling, John B. (1980). "6.8.5 Rappresentazione esponenziale". In Sumner, Frank H. (ed.). Progettazione di unità aritmetiche per computer digitali . Macmillan Computer Science Series (1 ed.). Dipartimento di Informatica, Università di Manchester , Manchester, UK: The Macmillan Press Ltd . pp. 91, 137. ISBN 0-333-26397-9.
[…] [w]usiamo un valore [n esponente] che viene spostato della metà dell'intervallo binario del numero. […] Questa forma speciale è a volte indicata come esponente distorto , poiché è il valore convenzionale più una costante. Alcuni autori l'hanno definita una caratteristica, ma questo termine non dovrebbe essere usato, poiché CDC e altri usano questo termine per la mantissa . Viene anche definita rappresentazione "in eccesso", dove, ad esempio, - è 64 per un esponente a 7 bit (2 7−1 = 64). […]
- Savard, John JG (2018) [2006]. "Rappresentazioni decimali" . quadriblocco . Archiviato dall'originale il 16-07-2018 . Estratto 2018-07-16 . (NB. Menziona l'eccesso-3, l'eccesso-6, l'eccesso-11, l'eccesso-123.)
- Savard, John JG (2018) [2007]. "Codifica Chen-Ho e decimale densamente compresso" . quadriblocco . Archiviata dall'originale il 03/07/2018 . Estratto 2018-07-16 . (NB. Menziona l'eccesso-25, l'eccesso-250.)
- Savard, John JG (2018) [2005]. "Formati a virgola mobile" . quadriblocco . Archiviata dall'originale il 03/07/2018 . Estratto 2018-07-16 . (NB. Menziona l'eccesso-32, l'eccesso-64, l'eccesso-128, l'eccesso-256, l'eccesso-976, l'eccesso-1023, l'eccesso-1024, l'eccesso-2048, l'eccesso-16384.)
- Savard, John JG (2018) [2005]. "Aritmetica del computer" . quadriblocco . Archiviato dall'originale il 16-07-2018 . Estratto 2018-07-16 . (NB. Menziona Eccesso-64, Eccesso-500, Eccesso-512, Eccesso-1024.)