Décalage binaire - Offset binary

Décalage binaire , également appelé excès-K , franchise prévue N , excès-e , le code excès ou représentation biaisée , un procédé de représentation de nombre signé où un nombre signé n est représenté par le motif de bits correspondant au nombre non signé n + K , K étant la valeur de polarisation ou le décalage . Il n'y a pas de norme pour le décalage binaire, mais le plus souvent le K pour un mot binaire à n bits est K  = 2 n -1 (par exemple, le décalage pour un nombre binaire à quatre chiffres serait 2 3 = 8). Cela a pour conséquence que la valeur négative minimale est représentée par des zéros, la valeur "zéro" est représentée par un 1 dans le bit le plus significatif et zéro dans tous les autres bits, et la valeur positive maximale est représentée par des tout-un ( commodément, c'est la même chose que d'utiliser le complément à deux mais avec le bit le plus significatif est inversé). Cela a également pour conséquence que dans une opération de comparaison logique, on obtient le même résultat qu'avec une opération de comparaison numérique sous forme vraie, alors que, dans la notation en complément à deux, une comparaison logique concordera avec une opération de comparaison numérique sous forme vraie si et seulement si les nombres étant comparé ont le même signe. Sinon, le sens de la comparaison sera inversé, toutes les valeurs négatives étant considérées comme étant plus grandes que toutes les valeurs positives.

Le code Baudot à 5 bits utilisé dans les premiers télégraphes à multiplexage synchrone peut être considéré comme un code binaire réfléchi (Gray) offset-1 ( excès-1 ) .

Un exemple historiquement important de la notation offset-64 ( excès de 64 ) était la notation à virgule flottante (exponentielle) dans les générations d'ordinateurs IBM System/360 et System/370. La "caractéristique" (exposant) a pris la forme d'un nombre de sept bits en excès de 64 (le bit de poids fort du même octet contenait le signe de la mantisse ).

L'exposant 8 bits dans Microsoft Binary Format , un format à virgule flottante utilisé dans divers langages de programmation (en particulier BASIC ) dans les années 1970 et 1980, a été codé à l'aide d'une notation offset-129 ( exces-129 ).

La norme IEEE pour l'arithmétique à virgule flottante (IEEE 754) utilise différentes tailles d'exposant, mais utilise également une notation offset pour le format de chaque précision. Exceptionnellement cependant, au lieu d'utiliser "excess 2 n −1 ", il utilise "excess 2 n −1  − 1" (c'est -à- dire exces-15 , exces-127 , exces -1023 , exces-16383 ) ce qui signifie que -order) bit de l'exposant ne convertira pas l'exposant pour corriger la notation de complément à deux.

Le binaire décalé est souvent utilisé dans le traitement du signal numérique (DSP). La plupart des puces analogiques-numériques (A/D) et numériques-analogiques (N/A) sont unipolaires, ce qui signifie qu'elles ne peuvent pas gérer les signaux bipolaires (signaux avec des valeurs à la fois positives et négatives). Une solution simple consiste à polariser les signaux analogiques avec un décalage CC égal à la moitié de la plage du convertisseur A/N et N/A. Les données numériques résultantes finissent alors par être au format binaire décalé.

La plupart des puces de processeur d'ordinateur standard ne peuvent pas gérer directement le format binaire décalé. Les puces CPU ne peuvent généralement gérer que les entiers signés et non signés et les formats de valeur à virgule flottante. Les valeurs binaires décalées peuvent être gérées de plusieurs manières par ces puces CPU. Les données peuvent simplement être traitées comme des entiers non signés, obligeant le programmeur à gérer le décalage de zéro dans le logiciel. Les données peuvent également être converties au format d'entier signé (que le processeur peut gérer de manière native) en soustrayant simplement le décalage de zéro. En conséquence du décalage le plus courant pour un mot de n bits étant 2 n -1 , ce qui implique que le premier bit est inversé par rapport au complément à deux, il n'y a pas besoin d'une étape de soustraction séparée, mais on peut simplement inverser le premier bit. C'est parfois une simplification utile dans le matériel, et peut également être pratique dans le logiciel.

Tableau de décalage binaire pour quatre bits, avec complément à deux pour comparaison :

Décimal Décalage binaire,
K = 8
Deux
complément
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

Le décalage binaire peut être converti en complément à deux en inversant le bit le plus significatif. Par exemple, avec des valeurs de 8 bits, la valeur binaire décalée peut être XOR avec 0x80 afin d'être convertie en complément à deux. Dans le matériel spécialisé, il peut être plus simple d'accepter le bit tel qu'il est, mais d'appliquer sa valeur en signification inversée.

Codes associés

Comparaison de codes
Code Taper Paramètres Poids Distance Vérification Complément Groupes de 5 Ajout simple
Décalage, k Largeur, n Facteur, q
code 8421 m 0 4 1 8 4 2 1 1–4 Non Non Non Non
Code nu 3 n + 2 2 5 3 N / A 2–5 Oui 9 Oui Oui
Code Stibitz n + 3 3 4 1 8 4  −2  −1 1–4 Non 9 Oui Oui
Code diamant 27 n + 6 6 8 27 N / A 3–8 Oui 9 Oui Oui
25 n + 15 15 8 25 N / A 3+ Oui Oui ? Oui
23 n + 24 24 8 23 N / A 3+ Oui Oui ? Oui
19 n + 42 42 8 19 N / A 3–8 Oui 9 Oui Oui
Décimal
 
0
1
2
3
4
5
6
7
8
9
8421
4 3 2 1
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
Stibitz
4 3 2 1
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
Nu
5 4 3 2 1
0 0 0 1 0
0 0 1 0 1
0 1 0 0 0
0 1 0 1 1
0 1 1 1 0
1 0 0 0 1
1 0 1 0 0
1 0 1 1 1
1 1 0 1 0
1 1 1 0 1
diamant
8 7 6 5 4 3 2 1
0 0 0 0 0 1 1 0
0 0 1 0 0 0 0 1
0 0 1 1 1 1 0 0
0 1 0 1 0 1 1 1
0 1 1 1 0 0 1 0
1 0 0 0 1 1 0 1
1 0 1 0 1 0 0 0
1 1 0 0 0 0 1 1
1 1 0 1 1 1 1 0
1 1 1 1 1 0 0 1
19 n + 42
8 7 6 5 4 3 2 1
0 0 1 0 1 0 1 0
0 0 1 1 1 1 0 1
0 1 0 1 0 0 0 0
0 1 1 0 0 0 1 1
0 1 1 1 0 1 1 0
1 0 0 0 1 0 0 1
1 0 0 1 1 1 0 0
1 0 1 0 1 1 1 1
1 1 0 0 0 0 1 0
1 1 0 1 0 1 0 1

Voir également

Les références

Lectures complémentaires

  • Gosling, John B. (1980). "6.8.5 Représentation de l'exposant". Dans Sumner, Frank H. (éd.). Conception d'unités arithmétiques pour ordinateurs numériques . Macmillan Computer Science Series (1 éd.). Département des sciences informatiques, Université de Manchester , Manchester, Royaume - Uni: The Macmillan Press Ltd . p. 91, 137. ISBN 0-333-26397-9. […] [nous] utilisons une valeur [n exposant] qui est décalée de la moitié de la plage binaire du nombre. […] Cette forme spéciale est parfois appelée exposant biaisé , puisqu'il s'agit de la valeur conventionnelle plus une constante. Certains auteurs l'ont appelé une caractéristique, mais ce terme ne doit pas être utilisé, puisque CDC et d'autres utilisent ce terme pour la mantisse . Elle est également appelée représentation "en excès -", ​​où, par exemple, - vaut 64 pour un exposant de 7 bits (2 7−1  = 64). […]
  • Savard, John JG (2018) [2006]. "Représentations décimales" . quadribloc . Archivé de l'original le 2018-07-16 . Récupéré le 16/07/2018 . (NB. Mentionne Excess-3, Excess-6, Excess-11, Excess-123.)
  • Savard, John JG (2018) [2007]. "Encodage Chen-Ho et Décimal Densément Emballé" . quadribloc . Archivé de l'original le 2018-07-03 . Récupéré le 16/07/2018 . (NB. Mentionne Excess-25, Excess-250.)
  • Savard, John JG (2018) [2005]. "Formats à virgule flottante" . quadribloc . Archivé de l'original le 2018-07-03 . Récupéré le 16/07/2018 . (NB. Mentionne Excess-32, Excess-64, Excess-128, Excess-256, Excess-976, Excess-1023, Excess-1024, Excess-2048, Excess-16384.)
  • Savard, John JG (2018) [2005]. " Arithmétique informatique " . quadribloc . Archivé de l'original le 16/07/2018 . Récupéré le 16/07/2018 . (NB. Mentionne Excess-64, Excess-500, Excess-512, Excess-1024.)