Partage
  • Partager sur Facebook
  • Partager sur Twitter

Limites Variable Programmation

Limites Variable Programmation

Sujet résolu
    19 septembre 2015 à 23:50:51

    Bonjour/Bonsoir,

    Je me posais une question :

    D'où vient la limite des variables ?

    Par exemple le 'int' va de -32 767 à 32 767, le char de '-128' à '128', pourquoi ?

    Merci de votre réponse.

    • Partager sur Facebook
    • Partager sur Twitter

    OMG OMG OMG

      20 septembre 2015 à 1:08:32

      Salut,

      C'est parce qu'on utilise le système binaire avec des octets, par conséquent un octet (ou char) va de -128 à 127 (inclus) parce qu'il n'y a que 8 bits, soit 2^8 possibilités, un int ne va pas de -32767 à 32767, c'est le short, et encore, c'est de -32768 à 32767 (inclus), parce que 2^16 possibilités, de même pour les autres tailles.

      • Partager sur Facebook
      • Partager sur Twitter
      MysteryDash / 100 MPM / Développeur Freelance C#.NET / osu! / PS4 Offline Remote Play
        20 septembre 2015 à 12:06:54

        MysteryDash a écrit:

        Salut,

        C'est parce qu'on utilise le système binaire avec des octets, par conséquent un octet (ou char) va de -128 à 127 (inclus) parce qu'il n'y a que 8 bits, soit 2^8 possibilités, un int ne va pas de -32767 à 32767, c'est le short, et encore, c'est de -32768 à 32767 (inclus), parce que 2^16 possibilités, de même pour les autres tailles.


        Ok merci pour ta réponse ;)
        • Partager sur Facebook
        • Partager sur Twitter

        OMG OMG OMG

          24 septembre 2015 à 14:12:53

          int varie de INT_MIN à INT_MAX. Pareil pour char. Au détail que cela peut être signé comme non signé. Cela dépend de la plateforme. int de -32k à +32k a existé. Il peut exister des tables pour lesquelles cette affirmation est toujours vraie.

          Les garanties sont sizeof(char) = 1 byte. Nb bit par byte = NCHAT_BIT (depuis C++14, on a la garantie que ce nombre vaut au mieux 8, en C++).

          puis, sizeof(short) >= 2,(ou 16bits, je ne sais plus. A vérifier)

          et enfin sizeof(short) <= sizeof(int) <= sizeof(long) <= sizeof(long long)

          -
          Edité par lmghs 24 septembre 2015 à 14:13:39

          • Partager sur Facebook
          • Partager sur Twitter
          C++: Blog|FAQ C++ dvpz|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS| Bons livres sur le C++| PS: Je ne réponds pas aux questions techniques par MP.
            24 septembre 2015 à 15:12:29

            En C on a

            sizeof(char)=1 par définition. char est un type de donnée codé sur CHAR_BIT bit.

            Les relations sont sizeof(char)≤sizeof(short)≤sizeof(int)≤sizeof(long)≤sizeof(long long).

            On a au minimum :

            CHAR_BIT≥8

            Les types de données

            • signed char et unsigned char ont une magnitude minimum de 8 bits
              → -(2⁷-1)≤signed char≤2⁷-1 ; 0≤unsigned char≤2⁸-1
               
            • signed short et unsigned short, signed int et unsigned int ont une magnitude minimum de 16 bits
              → -(2¹⁵-1)≤signed short/int≤2¹⁵-1 ; 0≤unsigned short/int≤2¹⁶-1
               
            • signed long et unsigned long ont une magnitude minimum de 32 bits
              → -(2³¹-1)≤signed long≤2³¹-1 ; 0≤unsigned long≤2³²-1
               
            • signed long long et unsigned long long ont une magnitude minimum de 64 bits
              → -(2⁶³-1)≤signed long long≤2⁶³-1 ; 0≤unsigned long long≤2⁶⁴-1
               
            • Partager sur Facebook
            • Partager sur Twitter
            First solve the problem. Then, write the code. ~ John Johnson

            Limites Variable Programmation

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown