• # C'est pourtant simple ...

    Posté par . En réponse au message Complémentation à 2. Évalué à 3.

    Tu fais la même chose ...

    Explication: pour obtenir le complément a deux d'un nombre:
    on fait le complément à un du nombre binaire, et on ajoute 1


    0101 codage de 5 en binaire
    1010 complément à un
    1011 on ajoute 1 : représentation de -5 en complément à deux

    Pour faire l'inverse:

    1011 on ajoute 1 : représentation de -5 en complément à deux
    0100 complément à 1
    0101 on ajoute 1

    Après il faut savoir que, en binaire,
    5=1*2^0+0*2^1+1*2^2+0*2^3

    Note que la notion de complément à deux nécessite de définir un format de données (dans notre exemple, 4 bits), et que le bit de poids forts est le bit de signe (=0: Nombre positif, =1, nombre négatif).

    A partir de la, pour transformer un nombre binaire (positif ou négatif) il faut:
    1 déterminer son signe en fonction du bit de signe
    2 si négatif, positionner le signe à "-" et effectuer le omplément a 2 de ta valeur (pour obtenir la valeur positive.
    3/ Si positif, mettre le signe à "+"
    4 convertir la valeur binaire (soit originelle si le bit de signe est à 0, soit celle issue de l'étape 2 si bit de signe=1) en décimal.
    - prendre en compte le signe détermoné a l'étape 2 ou 3

    J'espère que ça répond à tes questions.

    Sinon pour comprendre e complément à deux:

    Toujours sur 4 bits: 0=0000b=0x0. OK?

    Retire 1 à cette valeur: sur 4 bits, tu obtiens en binaire 1111, ou 0xf en hexa, soit -1 en decimal.

    Complément à deux de 1111:

    1111 valeur initiae.
    0000 Complément à 1
    0001 on ajoute 1

    compris ?