IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Assembleur Discussion :

Représentation complément à 2 des nombres


Sujet :

Assembleur

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Représentation complément à 2 des nombres
    Bonjour

    Je suis en 1ére SI et je confonds un peu tout en ce moment sur les complément à 2. Donc je connais la démarche mais je crois que je me trompe sur le développement. Je vais vous faire voir ma démarche et si ceci n'est pas bon corrigez-moi s'il vous plaît. Merci d'avance.

    Donc voilà, j'ai (-23215)10 je dois donc le passer en binaire ce qui me donne 1101010101111 base 2; ensuite je dois le passer en complément à 1 ce qui me donne 0010101010000 et ensuite donc pour le passer en à 2 je dois ajouter 1 ce qui donne 0010101010001 base 2 en à 2.
    Est-ce bien cela ? Si ce n'est pas ça est-ce que quelqu'un pourrait me faire l'exercice en détaillant étape par étape.

    Cordialement

  2. #2
    Rédacteur
    Avatar de Neitsa
    Homme Profil pro
    Chercheur sécurité informatique
    Inscrit en
    Octobre 2003
    Messages
    1 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur sécurité informatique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 041
    Points : 1 956
    Points
    1 956
    Par défaut
    Bonjour,

    Citation Envoyé par bart147 Voir le message
    Bonjour je suis en 1ére SI et je confond un peu tous en se moment sur les complément à 2 donc je connait la démarche mais je crois que je me trompes sur le développement je vais vous faire voir ma démarche et si ceci n'ai pas bon corrigé moi s'il vous plaît merci d'avance.

    Donc voila j'ai (-23215)10 je dois donc le passer en binaire ce qui me donne 1101010101111 base 2 ensuite je dois le passer en complément à 1 ce qui me donne 0010101010000 et ensuite donc pour le passer en à 2 je dois ajouter 1 ce qui donne 0010101010001 base 2 en à 2.
    Es-ce bien cela si ce n'ai pas sa es ce que quelqu'un pourrait me faire l'exercice en détailler étape par étapes.
    Cordialement
    Si j'ai bien compris tu souhaites partir d'un nombre en base 10 et trouver sa représentation en base 2 (complément à 2).

    1) Le plus simple est de partir de la valeur absolue du nombre:

    abs(-23215) = 23215

    2) de le transformer en binaire (via la méthode de la division successive par 2):

    23215 / 2 = 11607 r 1
    11607 / 2 = 5803 r 1
    5803 / 2 = 2901 r 1
    2901 / 2 = 1450 r 1
    1450 / 2 = 725 r 0
    725 / 2 = 362 r 1
    362 / 2 = 181 r 0
    181 / 2 = 90 r 1
    90 / 2 = 45 r 0
    45 / 2 = 22 r 1
    22 / 2 = 11 r 0
    11 / 2 = 5 r 1
    5 / 2 = 2 r 1
    2 / 2 = 1 r 0
    1 / 2 = 0 r 1

    ce qui nous donne:

    23215(10) = 101101010101111(2)

    3) complément à 1:

    il suffit de faire un NON binaire, c-a-d, inverser tous les bits. Le truc ici est de choisir un "espace" de représentation.
    Notre nombre binaire pourrait très bien être codé sur 15 bits, ceci dit, les espaces habituels sont des puissances de deux (4, 8, 16, 32, 64).

    Le plus proche étant 16 bits, j'insère un '0' comme bit significatif de poids fort [MSB] pour arriver à 16 bits (et qui à l'inversion des bits, donne un 1)

    ~0101101010101111 = 1010010101010000

    Un bit de poids fort à 1 signifie que le nombre est négatif.

    4) complément à 2:

    On ajoute 1 au complément à 1:

    1010010101010000(2) + 1 = 1010010101010001(2)

    résultat:

    -23215(10) = 1010010101010001(2) [sur 16 bits]
    -23215(10) = 11111111111111111010010101010001(2) [sur 32 bits]

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    merci pour ta réponse c'est exactement sa qu'il me fallais j'ai compris mais ce n'ai pas grave si je le laisse en 15 bits ce n'ai pas précisé dans ma consigne.

  4. #4
    Membre chevronné
    Avatar de Forthman
    Homme Profil pro
    conception mécanique
    Inscrit en
    Janvier 2005
    Messages
    702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 702
    Points : 1 905
    Points
    1 905
    Par défaut
    Hello,

    En fait tu es "obligé" d'utiliser un format 16 bits car avec 15 bits les limites
    en nombres signés sont -16384 à 16383

    a+ François

Discussions similaires

  1. représentation des nombres en binaire
    Par franck8 dans le forum C++
    Réponses: 5
    Dernier message: 16/01/2013, 01h52
  2. représentation des nombres réels
    Par franck8 dans le forum C++
    Réponses: 1
    Dernier message: 30/12/2012, 15h58
  3. Représentation normalisée des nombres flottants
    Par guizaniseifislam dans le forum Langage
    Réponses: 5
    Dernier message: 10/02/2012, 08h29
  4. représentation des nombres a virgules fixe en systemC
    Par MohEllayali dans le forum Bibliothèques
    Réponses: 0
    Dernier message: 10/03/2009, 22h50
  5. Réponses: 3
    Dernier message: 08/09/2003, 15h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo