j'ai un soucis, je suis incapble d'arriver à la réponse du corrigé quand j'éffectue l'addition des nombres binaire suivant: 56 & -27.
Notre professeur nous a donc apprit qu'il fallait signé notre nombre binaire pour en savoir son signe (+, -) Donc, je vais effectuer mes démarches avec une bit supplémentaire signé.
56 = '0 111000'
-27 = '1 11011'
Donc, je veux changer le nombre -27 avec le complément de 2 pour que l'on puisse l'addtionner avec 56.
1 11011 = 0 00100
0 00100
+ 1
---------
0 00101
0111000
+ 000101
---------
0111101
Ineluctablement, la réponse est 0 0011101 ce qui donne bien "29" et j'arrive à 0 111101 ce qui é`gale "64". J'ai tenté aussi de convertir mon 56 en complément de 2, voir si c'était mon problème, aussi tenté de complémenter également ma réponse finale, etc. sans succès apparent à chaque fois, alors je demande un petit coup de pouce pour m'aider à résolver ce petit problème!
J'ai trouvé ce qu'il me manquait comme notion, il fallait seulement égaliser le nombre de bit à celui du plus haut.
Merci quand même! ^^
23/09/2007 - 22h36
Gérard
Date d'inscription
janvier 2003
Localisation
Haut-Rhin
Âge
53
Messages
6 259
Re : [Résolu]
Envoyé par Mazh
J'ai trouvé ce qu'il me manquait comme notion, il fallait seulement égaliser le nombre de bit à celui du plus haut.
Merci quand même! ^^
Peux-tu préciser ?
Je me suis posé des questions en lisant ton post et je n'ai pas trouvé la réponse à ta question.
Maintenant que tu as chatouillé ma curiosité, je voudrais que tu me donnes la solution.
Merci d'avance.
Gérard.
23/09/2007 - 22h45
Mazh
Date d'inscription
octobre 2006
Âge
25
Messages
35
Re: Complément de 2 (Addition nombre binaire)
Je crois que tu vas rire, mais j'allais poster un "edit" parce que ma réponse ne se tient plus debout
Donc, j'ai cru qu'en égalisant -27 à 56 en binaire soit '0 111000' toujours avec ma bit significative. Que j'aurais pu arrivé à un résultat. Ce fut le cas, mais partiellement!
Donc, si j'égalise au même nombre de bits, -27 à 56 ça me donne comme suit:
0 111000 = '56'
1 011011 = '-27'
Donc, maintenant, je fais le complément à 2 de -27:
0 100100
+ 1
------------
0 100101
Donc, je le convertis et je lui ajoute une bit à la LSB (Least Signifiant Byte).
ça me donne donc:
0111000
+ 0100101
-----------
1011101
Mais là! ça donne bien évidement 29! mais mon bit significatif m'indique un résultat négatif! Alors je dois faire le complément!
Ce qui me donne: 0100010 + 1 bit = 0 100011 ... et là, je suis confondu. Je dois avoir fait une erreur avec mes bits significatifs. Je suis bloqué! :P
Dernière modification par Mazh ; 23/09/2007 à 22h49.
23/09/2007 - 23h06
HULK28
Date d'inscription
janvier 2006
Localisation
dans le labo d'essais...
Âge
48
Messages
9 015
Re : Complément de 2 (Addition nombre binaire)
Salut,
c'est normal tu fais un calcul sur 7 bits alors que tu dois l'effectuer sur 8 bits.
C'est le MSB (bit de poids fort) qui représente le signe dans un nombre signé.
@+
HULK
"Pour la carotte, le lapin est la parfaite incarnation du Mal."
Robert Scheckley.
23/09/2007 - 23h20
Mazh
Date d'inscription
octobre 2006
Âge
25
Messages
35
Re: Complément de 2 (Addition nombre binaire)
Merci infinement Hulk!
On m'avait dit que normalement on travaillait sur 8 bits, mais je pensais que l'on pouvait également y travailler sur d'autres bases.
Donc, je dois constement travailler sur des bases comme 8, 32, 64, 128 etc. si ne ne me trompe?
Jack à raison, 8 bits n'est pas nécessaire en effet.
HULK
"Pour la carotte, le lapin est la parfaite incarnation du Mal."
Robert Scheckley.
23/09/2007 - 23h41
Mazh
Date d'inscription
octobre 2006
Âge
25
Messages
35
Re: Complément de 2 (Addition nombre binaire)
Hum, je crois avoir compris que si je travaille sur 7 ou 8 bits, je ne dois pas prendre en considération les bits supplémentaire à ma bit de signe n'est-ce pas? Donc, le 1 à la fin, est écarté de la réponse! (Parce que je crois que c'était mon problème jusqu'a présent)!
23/09/2007 - 23h58
HULK28
Date d'inscription
janvier 2006
Localisation
dans le labo d'essais...
Âge
48
Messages
9 015
Re : Complément de 2 (Addition nombre binaire)
En fait si tu écris sur 8 bits on voit que le résultat est:
00111000 -> +56
00011011 -> +27
On inverse chaque bit:
11100100
On ajoute 1:
+1
Soit:
11100101 -> -27 (puisque le 8e bit est 1)
Soit
00111000 (+56)
+
11100101 (-27)
________
(1)00011101 -> +29 (chiffre positif puisque 8e bit=0, la retenue est ignorée)
@+
Dernière modification par HULK28 ; 24/09/2007 à 00h01.
HULK
"Pour la carotte, le lapin est la parfaite incarnation du Mal."
Robert Scheckley.
okay... J'ai compris, je faisais l'erreur de mettre également mon bit significatif à la 8e bit. Ce qui changeais mes résultats de mes derniers chiffres. Donc maintenant je mets environs tous mes résultats sur 8 bit, et je mets ma bit significatif comme le 9e bit. Je dois le faire parce que le professeur y tient. Même si ce n'est pas vraiment nécessaire.
Merci à vous tous qui m'avez aidé encore une fois!
24/09/2007 - 01h02
HULK28
Date d'inscription
janvier 2006
Localisation
dans le labo d'essais...
Âge
48
Messages
9 015
Re : Complément de 2 (Addition nombre binaire)
Le 8e bit est le bit de signe, le 9e bit est la retenue qui n'est pas prise en compte ici.
Jack a fait un calcul sur 7 bits puisque le 8e bit vaut 0 dans cet exemple, donc cela sous entend que le resultat est positif et le raisonnement reste juste.
C'est pour cela qu'avec 8 bits on ne peut avoir que -127/+127, seuls les 7 premiers bits représentent la valeur absolue du nombre.
Dernière modification par HULK28 ; 24/09/2007 à 01h06.
HULK
"Pour la carotte, le lapin est la parfaite incarnation du Mal."
Robert Scheckley.
24/09/2007 - 01h59
Mazh
Date d'inscription
octobre 2006
Âge
25
Messages
35
Re: Complément de 2 (Addition nombre binaire)
Bien, maintenant mes calculs arrivent avec exactitue, je mettais directement ma bit 1 (négative) devant le premier nombre, et elle revenait positive lors de la conversion (worng) parce que je pensais que le nombre était négatif au premier moment, j'avais donc mal saisie ce qu'était le complément avec un nombre positif.
Merci de ton support et ta patience puisque je n'ai pas compris du premier coup!
Amicalement.
24/09/2007 - 08h12
m'enfin
Date d'inscription
février 2006
Localisation
Var
Âge
50
Messages
518
Re : Complément de 2 (Addition nombre binaire)
Salut à tous,
juste pour préciser quelques points indispensables au bon déroulement du calcul en binaire signé:
- sur N bits, on code les nombres de -2N-1 à +2N-1-1 (exemple sur 8 bits on code de -128 à +127)
- à partir de cette contrainte, il faut choisir un format (nombre de bits) compatible avec le codage des nombres et avec le résultat et s'y tenir (par exemple pour calculer -127-2, il faut 9 bits car si -127 et -2 se codent bien sur 8 bits, le résultat doit être codé sur 9 bits minimum.
- l'éventuelle retenue (dépassement du format choisi) doit être ignorée (par exemple +1-1 se code sur 8 bits 0000 0001 + 1111 1111=1 0000 0000, le 9° bit doit être ignoré pour ne conserver que les 8 bits du format choisi, ici 0000 0000 qui est le résultat).
Attention, la valeur absolue d'un nombre codé sur N bits n'est pas donnée par les (N-1) bits de droite (exemple sur 8 bits, -1 se code 1111 1111, or si on conserve les 7 bits de droite on a 111 1111 qui valent 127). Pour retrouver la valeur absolue d'un nombre négatif, il faut faire à nouveau les opérations: complément à 1 + 1 (-1=1111 1111 -> 0000 0000 + 1->0000 0001)
A+