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

Langages de programmation Discussion :

Type d'une valeur


Sujet :

Langages de programmation

  1. #1
    Membre habitué
    Inscrit en
    Septembre 2005
    Messages
    747
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 747
    Points : 174
    Points
    174
    Par défaut Type d'une valeur
    Bonjour,

    j'ai une question dont je n'arrive pas à trouver la réponse.
    Sur une machine 16 bits avec le codage des entiers par complément à deux, quelle est le type de (32768) base 10 et (8000) en base 16

    Merci

  2. #2
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Type n'est pas le terme approprié ici (le "type" serait entier signé sur 16 bit), je pense plutôt que tu demandais ce que cette valeur représentait ?

    En fait 32768 n'est pas une valeur que l'on peut coder avec cette représentation, le plus grand entier qu'on puisse coder est 32767 :
    0111 1111 1111 1111
    au-delà on passe dans le négatif, la représentation binaire de 32768 est :
    1000 0000 0000 0000
    Le bit de poid fort étant à 1, il s'agit d'un nombre négatif, en fait il s'agit de -32768 :
    ~ 1000 0000 0000 0000 + 1 = 1000 0000 0000 0000 ( = 32768 dans une représentation binaire non signée)

    --
    Jedaï

  3. #3
    Membre du Club Avatar de Menthe_a_l_eau
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 47
    Points : 50
    Points
    50
    Par défaut
    Le type est la taille des tes variables selon ta cible :

    int, float, u32, u16 ,etc

  4. #4
    Membre habitué
    Inscrit en
    Septembre 2005
    Messages
    747
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 747
    Points : 174
    Points
    174
    Par défaut
    Citation Envoyé par Menthe_a_l_eau
    Le type est la taille des tes variables selon ta cible :

    int, float, u32, u16 ,etc
    Bonjour,

    dans le cas des 2 valeurs que j'ai écrit, quel est le type de ces valeurs ?

  5. #5
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Tu as dis toi-même qu'il s'agissait d'un int (et probablement long=int sur cette machine). Mais ta question n'a pas vraiment de sens, car le "type" d'un entier de 16 bit dépend du langage utilisé.

    --
    Jedaï

  6. #6
    Membre habitué
    Inscrit en
    Septembre 2005
    Messages
    747
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 747
    Points : 174
    Points
    174
    Par défaut
    Citation Envoyé par Jedai
    Tu as dis toi-même qu'il s'agissait d'un int (et probablement long=int sur cette machine). Mais ta question n'a pas vraiment de sens, car le "type" d'un entier de 16 bit dépend du langage utilisé.

    --
    Jedaï
    On me demande de typer ces valeurs.
    Si ce n'est ni le signe ni le type du nombre, qu'est-ce que ça signifie alors ?

  7. #7
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Citation Envoyé par Premium
    Bonjour,

    j'ai une question dont je n'arrive pas à trouver la réponse.
    Sur une machine 16 bits avec le codage des entiers par complément à deux, quelle est le type de (32768) base 10 et (8000) en base 16

    Merci
    Si la question est texto celle-ci, alors c'est probablement un piège auquel tu dois répondre en disant que ces valeurs ne sont pas codables dans ces conditions (cf ma première réponse) ou peut-être éventuellement du type long long int, mais tout dépend du compilateur... C'est pourquoi la question est absurde sans autres précisions.

    --
    Jedaï

  8. #8
    Membre habitué
    Inscrit en
    Septembre 2005
    Messages
    747
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 747
    Points : 174
    Points
    174
    Par défaut
    Citation Envoyé par Jedai
    Si la question est texto celle-ci, alors c'est probablement un piège auquel tu dois répondre en disant que ces valeurs ne sont pas codables dans ces conditions (cf ma première réponse) ou peut-être éventuellement du type long long int, mais tout dépend du compilateur... C'est pourquoi la question est absurde sans autres précisions.

    --
    Jedaï
    Je recopie exactement ce qu'il m'est demandé.
    Je ne sais pas si c'est plus clair
    Sur une machine 16 bits avec le codage des entiers par complément à deux, typer de (32768) base 10 et (8000) en base 16.
    Justifiez votre réponse. Si plusieurs choix sont possibles vous devrez les discuter.

  9. #9
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Oui mais tu n'as toujours pas répondu à la question : on est dans quel contexte ? Quel langage, quel compilateur ? Ca pourrait aussi être juste du "unsigned int", mais là encore, tout ça c'est du C...

    --
    Jedaï

  10. #10
    Membre habitué
    Inscrit en
    Septembre 2005
    Messages
    747
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 747
    Points : 174
    Points
    174
    Par défaut
    Citation Envoyé par Jedai
    Oui mais tu n'as toujours pas répondu à la question : on est dans quel contexte ? Quel langage, quel compilateur ? Ca pourrait aussi être juste du "unsigned int", mais là encore, tout ça c'est du C...

    --
    Jedaï
    Bonjour,
    Le langage est le C ansi.
    Pour ce qui est du contexte et du compilateur, il n'y a pas de précision.
    C'est une question qui est censée avoir une réponse par écrit et non en codant sur PC, c'est pour ça qu'il n'y a pas plus de précision.

  11. #11
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 121
    Points
    28 121
    Par défaut
    Les types en C sont définis dans la norme.

    Voici un exemple de ce qu'on peut y lire :
    — minimum value for an object of type short int
    SHRT_MIN -32767 // -(215 - 1)
    — maximum value for an object of type short int
    SHRT_MAX +32767 // 215 - 1
    Donc quelle que soit la machine, 32768 ne peut être du type chort en C ansi 99.

    On continue :
    — maximum value for an object of type unsigned short int
    USHRT_MAX 65535 // 216 - 1
    On est bon
    — maximum value for an object of type int
    INT_MAX +32767 // 215 - 1
    On est pas bon
    — maximum value for an object of type long int
    LONG_MAX +2147483647 // 231 - 1
    — maximum value for an object of type unsigned long int
    ULONG_MAX 4294967295 // 232 - 1
    On est encore bon, et il en sera de même pour les types long long int et unsigned long long int.

    Donc 32768 peut être
    • un unsigned short
    • un unisgned int
    • un long int
    • un unsigned long int
    • un long long int
    • un unsigned long long int


    Pour ce qui est 8000 en base 16, qui vaut 32768 en base 10, vu que l'ordinateur compte en base 2, c'est exactement la même chose....
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

Discussions similaires

  1. [PHP Excel] Spécifier le type d une valeur dans une cellule
    Par jano_dave dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 20/04/2010, 10h27
  2. Condition sur le type d'une valeur retournée
    Par Andalor dans le forum Développement
    Réponses: 2
    Dernier message: 09/03/2009, 12h55
  3. tester le type d'une valeur saisie
    Par lalaurie40 dans le forum C
    Réponses: 1
    Dernier message: 09/10/2005, 21h52
  4. [JDBC] Affichage d'une valeur de type CloB
    Par Jihed Amine Maaref dans le forum JDBC
    Réponses: 3
    Dernier message: 07/04/2005, 15h03
  5. Réponses: 27
    Dernier message: 30/03/2005, 23h30

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