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

C Discussion :

complément à 2


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 342
    Par défaut complément à 2
    Bonjour,
    existe-il une fonction permettant de réaliser directement un complément à 2?
    Merci.

  2. #2
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Citation Envoyé par sandball22
    Bonjour,
    existe-il une fonction permettant de réaliser directement un complément à 2?
    Merci.

    Jc

    [EDIT] en effet, il faut un +1 [/EDIT]

  3. #3
    Membre émérite
    Avatar de Freed0
    Profil pro
    Étudiant
    Inscrit en
    Mars 2005
    Messages
    635
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 635
    Par défaut
    Citation Envoyé par fearyourself
    C'est le complément à 1 ça, non ?

    Pour moi, ce serait plutôt :


  4. #4
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Citation Envoyé par Freed0
    C'est le complément à 1 ça, non ?

    Pour moi, ce serait plutôt :

    Exact, c'est corrigé

    Jc

  5. #5
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Il vaut mieux eviter de faire des manipulations de bits avec des entiers signes.

    Et le complement a 2 s'ecrit alors - en C.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 342
    Par défaut
    Cela ne marche pas. J'obtiens des chiffres erronés.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    for(i=0;i<24;i++)
    		{
    			phas[i] = phase[i];
    			printf("%d",phas[i]);
    			phas[i] = ~phas[i]+1;
    			printf("%d",phas[i]);
                    }
    En effet, j'utilise ce code. Dans cette boucle for, je récupère un tableau de binaires que je mets dans le tableau phas[i].

    Voila ce que j'obtient en simulant : 02551254125402551254025502550255025502551.......

  7. #7
    Membre émérite Avatar de stephl
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 643
    Par défaut
    Citation Envoyé par sandball22
    Cela ne marche pas. J'obtiens des chiffres erronés.
    Voila ce que j'obtient en simulant : 02551254125402551254025502550255025502551.......
    S'il vous plaît, ajoutez des espaces entre les éléments...

  8. #8
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Ce code affiche le complément à deux de chaque élément du tableau sans erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    #include <stdio.h>
    #include <stdlib.h>
     
    #define ARRAY_SIZE(tab) (sizeof (tab)/sizeof *(tab))
     
     
    int main(void)
    {
        int i;
        unsigned int tableau[10];
     
        for (i = 0; i < ARRAY_SIZE(tableau); ++i)
        {
            tableau[i] = i;
        }
     
        for (i = 0; i < ARRAY_SIZE(tableau); ++i)
        {
            printf("%d: Le complément à 2 de %x est %x\n", i, tableau[i], ~tableau[i] + 1);
        }
     
        return EXIT_SUCCESS;
    }
    qui affiche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    0: Le complément à 2 de 0 est 0
    1: Le complément à 2 de 1 est ffffffff
    2: Le complément à 2 de 2 est fffffffe
    3: Le complément à 2 de 3 est fffffffd
    4: Le complément à 2 de 4 est fffffffc
    5: Le complément à 2 de 5 est fffffffb
    6: Le complément à 2 de 6 est fffffffa
    7: Le complément à 2 de 7 est fffffff9
    8: Le complément à 2 de 8 est fffffff8
    9: Le complément à 2 de 9 est fffffff7
    Je ne sais pas de quel type sont les éléments de ton tableau phas, mais comme l'a signalé Jean-Marc Bourguet, il vaut mieux se limiter aux entiers non-signés pour effectuer des opérations bit par bit.

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Technique du complément A1
    Par Évariste Galois dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 29/09/2005, 17h19
  2. [Conception] Complément à 1 (IP et Masque de sous réseaux)
    Par zeldoi5 dans le forum Général Java
    Réponses: 18
    Dernier message: 19/04/2005, 17h07
  3. Progression dans TShFileOpStruct (Complément de FAQ)
    Par yoghisan dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 14/03/2005, 21h16
  4. [TrayIcon] Complément d'info...
    Par SteelBox dans le forum C++Builder
    Réponses: 2
    Dernier message: 02/04/2004, 17h25

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