Coder en Binaire-Representation Entiers Relatifs Cours

Vous aimerez peut-être aussi

Vous êtes sur la page 1sur 3
Pea erent binaire des entiers oe io ‘Nous avons dja vu comment coder en binaire des enters posits (entiers naturels) dans le chapitre |. Danse chapitre nous allons voir comment zont représentés en machine las entiars relatifs entiers négatifs et posit) = Diaporama Le cours qui sult reprend en détails ous les éléments présentés dans le diaporama (a écrit comme & oral). es compléments sont ‘également donnés. Sa lacture est done essentialle pour révisr ot anerer les connaissances, = Une premiere représentat Une ide simple pour représenter les entiersrelatits est: + gris le bt de poids fort (le plus 8 gauche] pour représenter le signe de Fentier:0 pour un enter positf et pour un entier négatit + utiliser es autres bits pour représenter la valeur absolue de Fentier. En procédant ainsi, sion code les entiers naturels sur 4 bts (pour simple), alors + le binaire 0011 correspondant a fentier3.car en), © et le bit de poids fort est @ done ils'agit dun entier posit + le binsire 1011 correspondant a entier ~3 car e1), © et le bit de poids fort est 1 done ilsagit dun entier négatif| Problemes avec cette méthode ‘er problame (mineur):Tentior 0 serait codé de deux fagons 0888 ot 1008 (+0 et -0, un entier positifet un entier négatif 2ame probléme (majeur 1): falgorithme d'addition habituel ne fonctionne plus (lorsaui ‘comme le montre ces deux exemoles: jon additionne deux entlers de signes contraires) eo1e 2 eo10 ~2 +1011 ~>-3 +1e10 > -2 nel > -5 11ee ~-4 Lagation 2 + (~3) donnerait —5 Lagattion 2 + (=2) donnerait 4 Ce nest cone pas une méthode satsfalsante car Il faudrat alors redéfinr lalgorithme de Taddltion, La solution Ia plus commune pour contoumer ces problémes est dutlser encadage sit par complément & 2 = La représentation choisie : le complément a 2 La méthode du complément 4 2 @ erecta sim perc cae maths annette complinentb2 Considérons que fon code nos entiers sur n = 4 bits fon peut gnéraliser tout ce qui sera vu), On ne sineéresse ic quid la representation des entiers négatte Exemple : représentation du nombr 5 par la méthode du complément a2 + £tape 1: On passe d'abord en posit: + €19pe2: On représente § sur 4 bits :@101 + tape 3: On inverse tous les bits (les deviennent 0 et réciproquement) 1010. + Etape 4: On ajoute 1 au nombre obtenu {sans tenlr compte de la retenve finale) 1910 a 1011 < résultat Conclusion : La representation de ~5 en complément & deux sur 4 bits est donc 1811 Représentation circut @ de la notation en complément a deux Les nombres binaires sont écrits dans fordre en tournant dans le sens des aigulles dune montre, tout en conservant la signification du bit de signe. Comme on n'a pas de« 0 ily a un décalage de dans la symétrie entre entiers postifs ot négatifs alors qui les binaires le est parfaite pour Cres Micka Barauc Fig. 1 - Représentation circulaire du complément & deux. ‘Source : application Tkinter proposée par Mickae! arraudlors du DIU Ell, universté de Nantes Reprenons lexemple du codage de —5. On est part de 5 (étape l), on fa éerit en binaire(étape 2} pour ebtenir 8101 puis on 2 inversé tous les bits tape 3, ce qui revient 8 apoliquer topérateur NON chaque bit) pour trouver 1810 qui représente ~6 et enfin on a ajouté I (stape 4) pour obtenit 1811 oui teprésente ~5, Et dans l'autre sens ? Connaissant une représentation en complément 8 2. lest bien st possible de déserminer de quel entier sgt. Exemple : Quel entier est représenté par 1011 en complément &2 (sur 4 bits) 7 + €tape 1: On Inverse tous les bits:6100 + Etope2:On ajoute Tau résukat: 0100 +1 = 0161 + £tape 8: On décode Fentior post obtonu 5 fear 1 x 29+ 1x 2 = 5) + tape 4:0n passe en négatif: —5 Conclusion : Done 1612 ext la représentation en complément 2 de Fentir 6 (ur 4 bit) Plage de valeurs possibles Sion code sur 4 bit est possible de représenter 2 enters ans la méthode du complément 82 + la moitié sont des entiers positits (ceux commencant par @}: de 8800 8 111 + et lautre moitié sont des entiers strictement négatits (ceux commencant par un 1}:de 1808 8 111 (On peut done représenterains' les entiers positfs compris entre O et Tet les enters strictement négatifs compris entre Bet ~1; cest-S- dire tous los entiors relatifs compris entre ~8 at 7 fly en a bien 161) (De maniére générale, si on dispose de n bits pour représenter des entiers en camiplément& 2, on peut en représenter 2", La maitié centre ceux sont des entiers posits [ily en 2 2°”) et fautre moitlé des enters strictement négatifs ily en @ aussi 2°}. ‘Ainsi,on peut représenter tous les entiers positifs compris entre 0 et 2"! — 1 et tous les entiers stricterient négatifs compris entre ~*~" et 1, cest--dire tous les enties relatifs compris entre —2" + et 2" 4 — Au fait, pourquoi dit-on complément 42? Lorsque ton cherche & déterminer le codage de —8,0n cherche en fait le nombre ntel que n +5 1111 retenues e101 5 +1011 > -5 10000 — 2*=16 En binaite le caleul de 5 + (6) est @101 + 1011 qui donne 10800 cest-dire 2', Cela signifie ue 1011 est le complément 8 2" de 0101, est-tedive le nombre binairequil faut ajouter &@101 pour obtenit 2 On devrat done dire de mani plus rgoureuse le complément & 28 (puisque fon a chois de coder sur 4 bits) @© eveceunsrcneme ae cramisave (8) datae denon En fat, en binaire le résulkat donne 18880 mais comme on 2 choisi de coder sur 4 bits le bit 1 nest pas prs en compte (pulsque c'est le ‘Séme bit) ete résultat en machine est done bien égal 8 000, cest-i-dire 0 Pourquoi la méthode proposée permet de déterminer la représentation en complément 82 d'un entier ? Meme sila representation circulire permettait de comprendre lidée, voici une explication plus rigourcuse Notons 2 un entier posit et x son éerture binaire Sion cherche ls représentation en complément 82 de Topposé de 2, on cherche an faite nombre m tel que = }-m = 0. Notons 7 le nombre binaire dans laqueln inverse tous les bite ce x (on dt que 77 est le complément 8 Ide 2) (On remarque alors qu'on 2 toujours 2; + Fy — 1111 pulsque pour chaque bit on additionne un bit «1» avec un bit « 0», ar exemple, 1011 + 1@0 = 1111, Sion ajoute 18 ce nombre, on obtiont 0. En effet 2111 retenues wt ete + 1 (0000 Comme on a choisi de coder sur 4 bits, on ignore la derniéveretenue et le résultat est donc 088 sot 0. On vient de montrer que 22+ 37+ Oot donc a trouvé la représentation binaire de notre nombre m (fepposé de 2). HL Ani, pour représenter un entier négatif fm), on part de sa valeur absolue (2), que fon code en binaire 2], puis on inverse tous les bits (=) et enfin on ajoute 1

Vous aimerez peut-être aussi