bonjour j'aurais besoin de votre pour un truc que je ne comprends pas trop
voila si j'ai 11010 en complement a 2 comment faire pour convertire ça en decimale?
-----
bonjour j'aurais besoin de votre pour un truc que je ne comprends pas trop
voila si j'ai 11010 en complement a 2 comment faire pour convertire ça en decimale?
Bonsoir
Cela dépend du nombre de bits total et du fait de savoir si c'est de l'entier ou du fractionnaire
11010 si le codage est sur 5 bits en complément à 2
si c'est en entier [-16,15] cela fait -6
si c'est en fractionnaire [-1,1[ => -0,375
le bit le plus à gauche est le bit de signe ensuite on applique -A = !A +1 pour repasser en positif
JR
l'électronique c'est pas du vaudou!
en fait je ne penses pas avoir de probleme pour passer du binaire au complement a 2 mais l'inverse j'ai du mal
alors tu ecris si c'est sur 5 bit cela donne -6 ca serait pas plutot +10
1 1 0 1 0
=+ 8+0+0+2
=+10
je ne comprends pas trop les intervalles de definition
Et pourtant il s'agit de la même opération.en fait je ne penses pas avoir de probleme pour passer du binaire au complement a 2 mais l'inverse j'ai du mal
alors tu ecris si c'est sur 5 bit cela donne -6 ca serait pas plutot +10
si 11010 est codé en complément à 2 sur 5 bits, le bit de poids fort étant égal à 1, il s'agit d'un nobre négatif dont la valeur absolue est égale au complément à 2 de 11010, donc 00101 + 1 = 00110 = 6 en décimal.
donc il s'agit bien de -6.
A+
daccord en fait si j'ai 11010 sur 5 bits ça me donne bien -6
mais si j'ai 111010 sur 6 bits ça me donne aussi -6
et sur n bits 111....11010 j'aurais egalement -6 non ?
pourquoi preciser le nombre de bits ça sers a rien puisqu'on retombe sur le meme resultat
si je reprends 11010 sur 4 bits ça me donne 1010=-6 meme
en complement a 1 j'ai
0101+0001=0110=6
bizarre comme raisonnement:pourquoi preciser le nombre de bits ça sers a rien puisqu'on retombe sur le meme resultat
11010 sur 5 bits donne -6
sur 6 bits maintenant, le même nombre binaire est égal à 011010 ce qui donne 26 et non plus -6
En fait en ajoutant des 1 devant le nombre binaire, tu viens de découvrir ce qu'on appelle l'extension du bit de signe.
bonjour en fait le nombre 11010 est en complement a 2 et je veux comprendre l'interet de savoir le nombre de bit pour le mettre en decimale
si je prends je veux savoir est ce que j'ai le droit de le definir sur 3 bits?
sur 5 bits 11010= -6
sur 6 bits 111010=-6
sur 7 bits1111010=-6
mais si je prends 011101 toujours en complement a 2
sur 6 bits 011101=+32
sur 7 bits 0011101=+99
est ce que c'est ça que je dois comprendre ? en mon probleme c'est comment passer du complement a 2 au decimal
On ne peut pas coder -6 sur seulement 3 bits. On dépasse la capacité. Il faut au moins 4 bits.
Non!mais si je prends 011101 toujours en complement a 2
sur 6 bits 011101 = +32
sur 7 bits 0011101 = +99
sur 6 bits 011101 = +30
sur 7 bits 0011101 = +30
sur 8 bits 00011101 = +30
etc.
C'est un nombre binaire, et le poids faible est toujours à droite.
Quant à passer du complément à 2 au décimal, on extrait le signe (i.e. on retient le premier bit), on passe à la valeur absolue (i.e. on complémente et on ajoute 1 si négatif) et on fait la conversion (par exemple en faisant des divisions par 10 avec reste successives).
sur 6 bits 011101 = +30
sur 7 bits 0011101 = +30
sur 8 bits 00011101 = +30
c'est pas du binaire c'est en complement a 2 a aucun moment je veux convertir du binaire tous sont des complement a 2 et je veux les mettre en decimale
et pour la methode tu pourrait me donner un exmple stp
Tu as un petit peu de mal avec le binaire:
N'importe quel nombre binaire s'exprime avec des 0 et des 1, qu'il soit codé en complément à 2 ou en binaire naturel.c'est pas du binaire c'est en complement a 2
Ce que tu dois comprendre, c'est que ce codage est destiné à être effectué par de l'électronique, un microprocesseur, voire un simple additionneur. dans ce cas, le format des nombres est imposé. Avec un format 8 bits par exemple, 6 s'écrira 00000110, les zéros à gauche étant donc physiquement présents.sur 6 bits 011101 = +30
sur 7 bits 0011101 = +30
sur 8 bits 00011101 = +30
Si tu veux coder des nombres signés, -6 sera codé 11111010. ce n'est donc pas la peine de chercher s'il faut ou non ajouter des 1 à gauche, c'est le format qui décide.
A+
d'accord merci j'ai compris la je crois mais je veudrais savoir pour faire une soustraction de 2 nombre binaire on me dit qu'iol faut additionner le nombre a soustraire mais au niveau des signes comment ça se passe?
Bonsoir
pour faire A-B il faut faire l'addition : A+ !B +1 .
!B = not B
recette simple pour complementer un nombre:
en partant de la droite on conserve les bits jusqu'à trouver un 1 que l'on garde ensuite on inverse tous les bits rencontrés y compris le bit de signe:
ex B = 10001000100 => - B = 01110111100
Il faut bien sur que les nombres aient le même nombre de bits.
JR
l'électronique c'est pas du vaudou!
Comme il a été dit plus haut, le complément à deux est aussi du binaire. La seule différence entre le binaire signé en complément à deux et le binaire non signé, c'est que pour un mot de n bits, le bit de gauche a un poids négatif (il vaut -2n-1 en signé complément à deux, et +2n-1 en non signé).
La méthode de conversion donne, en pseudo-code:Code:[1]- mémoriser le bit de gauche (signe) [2]- le bit de gauche est-il égal à 0 (positif) ? si oui, aller à [5] [3]- inverser tous les bits [4]- ajouter 1 [5]- diviser par 10 et en mémoriser le reste. Le reste de la division représente successivement les unités, les dizaines, les centaines, etc. . [6]- recommencer [5] jusqu'à ce que le dividende soit nul, ou jusqu'à ce que le nombre de chiffres décimaux obtenu soit suffisant (par exemple 5 chiffres pour 16 bits au départ), au choix.
Par exemple: soit le nombre binaire signé complément à deux : 10010100bLe résultat est : - 0001.0000.1000, c'est-à-dire -108d.Code:[1]- le bit de gauche est égal à 1 -> le signe est négatif [2]- on continue [3]- l'inversion des bits donne : 01101011b [4]- l'ajout d'une unité donne : 01101100b [5]- la division de 01101100b par 10d donne 00001010b avec pour reste 1000b -> on mémorise 1000b [6]- 00001010b n'est pas nul, on recommence [5] [5]- la division de 00001010b par 10d donne 00000001b avec pour reste 0000b -> on mémorise 0000b [6]- 00000001b n'est pas nul, on recommence [5] [5]- la division de 00000001b par 10d donne 00000000b avec pour reste 0001b -> on mémorise 0001b [6]- 00000000b est nul, on arrête.
dans un exercice o me dit calculer en valeur absolue le nombre suivant
10011-1101
ma question est comment savoir si il s'agit d'un nombre signé ?
si c'est un nombre signé est ce que je doit ecrire
10011-01101? ou 10011-11101?
vous etes bien d'accord que si c'été du binaire j'orais eu 10011+01101=100000?
Visiblement tu n'as toujours pas compris ce que c'est que du binairevous etes bien d'accord que si c'été du binaire j'orais eu 10011+01101=100000?
En plus, pour tu transformes une soustraction en addition?
Soit la question est mal posée, soit il en manque un morceau, soit les deux valeurs sont des valeurs absolues et il suffit de faire la soustraction. je pencherais vers cette solution vu que les 2 nombres n'ont pas le même format et ne sont donc pas codés en nombres signés.dans un exercice o me dit calculer en valeur absolue le nombre suivant
10011-1101
voici la consigne exact
Donner le resultat en valeur absolue des operations suivantes:
10010-11001
1101-11110
11101-1011
dans la correction ils ecrivent
10010-11001=10010+00111=11001
1101-1110=01101+00010=01111
11101-1011=11101+10101=01111
je veux bien comprendre qu'ils ont transformer la soustraction en addition avec la methode qui consiste a complementer le nombre a soustraire et d'additionner mais par exemple pour le 2) j'ai un probleme de definition j'ai un membre sur 4 bits et l'autre sur 5 bits
j'aurais ecri 11101-11110 et non 01101-11110
est ce qu'on doit appliquer la meme methode du complement a 2 pour les definitions de bits en nombre signé
en complement a 2 on me dit
sur 4 bits 1101
sur 5 bits 11101
sur 6 bits 111101
pour les nombre signé je peux ecrire?
sur 4 bits 1101
sur 5 bits 11101
sur 6 bits 11101
Pour moi il y a effectivement un problème. Ca donne l'impression que celui qui a posé ce problème n'a pas tout compris.mais par exemple pour le 2) j'ai un probleme de definition j'ai un membre sur 4 bits et l'autre sur 5 bits
Si tu as donné l'énoncé complet, là aussi il y a un problème; il faudrait dire dans quel code sont exprimés les nombresDonner le resultat en valeur absolue des operations suivantes:
10010-11001
1101-11110
11101-1011
Et là encore, la correction est incomplète. Si on te demande la valeur absolue, ça sous-entend qu'il peut y avoir un signe. Donc si le résultat est égal à 11001, le nombre serait négatif, donc il faudrait poursuivre afin d'en extraire la valeur absolue.dans la correction ils ecrivent
10010-11001=10010+00111=11001
C'est quelqu'un d'expérimenté qui t'a posé ces exercices?
D'accord avec Jack. Il y a un problème.
Pour le premier calcul, c'est ok.10010-11001
1101-11110
11101-1011
dans la correction ils ecrivent
10010-11001=10010+00111=11001
1101-1110=01101+00010=01111
11101-1011=11101+10101=01111
Pour le second, t'es-tu trompé dans la retranscription ? Est-ce qu'il s'agit de 1101-11110 ou bien de 1101-1110 ?
- Si le calcul est 1101-1110, alors il y a une incohérence avec la correction du troisième calcul, puisque l'extension de signe (1110 devient 11110) observe une règle différente (1011 devient 01011). Et là, la correction est forcément erronée.
- Si le calcul est 1101-11110, alors la correction suggère que tous les nombres sont codés sur 5 bits (4 bits + signe) et que 1101 doit être interprété comme 01101, ainsi que 1011 comme 01011 dans le troisième calcul. Et là, la correction se tient.
On en arrive aux mêmes conclusions
Quand un problème n'est pas correctement formalisé, tout est sujet à interprétation et on tourne en rond en se posant mille questions inutiles sans jamais être sur d'arriver au résultat.