Question complément à 2
Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

Question complément à 2



  1. #1
    invite3d4f2ff3

    Question complément à 2


    ------

    Bonjour,

    J'utilise un CAN 32bits et je dois faire une conversion du résultat en complément à 2 pour me ramener à la tension mesurée.
    D'après la doc constructeur du CAN ils mettent un petit exemple en langage C mais il utilise un opérateur que je n'ais jusqu'à aujourd'hui jamais utilisé: ^=
    Ainsi, je récupère la valeur brute je la stock dans une variable noté X et voici ce que la doc me dit:
    Code:
    X ^= 0x80000000; // Invert MSB, result is 2’s complement
    voltage = (float) X; // convert to float
    voltage = voltage * 5.0 / 2147483648.0;// Multiply by Vref, divide by 2^31
    Donc ma question est donc comment fonctionne ce ^= , je pense qu'il y a de soustraction la dedans qui prend en compte le signe mais c'est pas très claire...

    -----

  2. #2
    antoine6

    Re : Question complément à 2

    Le ^= est l'opérateur de ou exclusif

    En gros, A ^= 1 donne !A, et A ^= 0 donne A

    edit:

    Code:
    voltage = voltage * 5.0 / 2147483648.0;
    C'est pas génial

    2147483648.0 = 2^31, c'est plus pratique de faire des décalages à droite qu'une division
    Dernière modification par antoine6 ; 06/10/2011 à 15h24.

  3. #3
    Jack
    Modérateur

    Re : Question complément à 2

    C'est effectivement bien un OU exclusif.

    X ^= 0x80000000; est équivalent à X = X ^ 0x80000000;
    Cette opération inverse donc bien le bit de poids fort de X. Ce qui est étonnant au 1er abord, c'est le commentaire: inverser le msb ne suffit pas à écrire une valeur en complément à 2, ça se saurait.
    Tu peux donner la référence du convertisseur?

    A+

  4. #4
    antoine6

    Re : Question complément à 2

    Citation Envoyé par antoine6 Voir le message
    2147483648.0 = 2^31, c'est plus pratique de faire des décalages à droite qu'une division
    Je suis un boulet, si c'est un float ca marchera pas...

  5. A voir en vidéo sur Futura

Discussions similaires

  1. le complement à 2
    Par invite506af8cb dans le forum Électronique
    Réponses: 1
    Dernier message: 03/12/2010, 13h01
  2. [Biochimie] Le complement
    Par invite247418a1 dans le forum Biologie
    Réponses: 1
    Dernier message: 01/02/2010, 15h14
  3. complement a 2
    Par invite92664de4 dans le forum Électronique
    Réponses: 18
    Dernier message: 18/03/2009, 08h06
  4. complément a 2
    Par invite7c3f0e95 dans le forum Électronique
    Réponses: 4
    Dernier message: 03/11/2008, 20h09
  5. complement a la question de orlinco du 28/08
    Par invitebc8741c4 dans le forum Secourisme spécial Croix-Rouge
    Réponses: 1
    Dernier message: 22/09/2004, 22h20
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...