Variable infinie

Signaler
Messages postés
23
Date d'inscription
mercredi 7 décembre 2005
Statut
Membre
Dernière intervention
9 juin 2006
-
Messages postés
429
Date d'inscription
mardi 6 juillet 2004
Statut
Membre
Dernière intervention
12 janvier 2008
-
bonjour tout le monde,

je voulais juste savoir s'il était possible de déclarer une variable entière et de l'initialiser avec une valeur +infini. Exemple :

int variable = + l'infini

12 réponses

Messages postés
111
Date d'inscription
mercredi 2 février 2005
Statut
Membre
Dernière intervention
5 août 2011
1
Je ne pense pas que tu puisse faire ça car une variable de type integer varie de 0 à 65535 Octets en non signé.
Messages postés
746
Date d'inscription
vendredi 17 juin 2005
Statut
Membre
Dernière intervention
23 mai 2007
10
Non, un int est sur 32 bits, et pas sur 16.
Un int à des valeurs comprises entre 0 et 4294967295 en unsigned.

windows.h déclare une contante appelé INFINITE, mais je ne sais pas si c'est une valeur arbitraire ou qqch comme ça...
Messages postés
987
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
30 août 2012
24
Quand tu utilise n'importe quel type de variable, ca valeur "infinie" sera la valeur maximun que cette variable peut contenir.
++
Messages postés
23
Date d'inscription
mercredi 7 décembre 2005
Statut
Membre
Dernière intervention
9 juin 2006

d'accord mais en fait je voulais savoir si en C yavait un mot clé (comme INFINITE) pour désigner une variable de valeur infinie. une variable telle que l'infini/2 = l'infini. Parce que si je met la plus grande valeur (2^32 donc), si je divise par 2 c'est plus 2^32!!!

vous pensez que j'ai le droit de faire "int variable1 = INFINITE" ????

Merci pour votre aide en tous cas !
Messages postés
746
Date d'inscription
vendredi 17 juin 2005
Statut
Membre
Dernière intervention
23 mai 2007
10
Bah crée toi une classe de variable infinie qui surcharge les operateurs de calcul, ou surcharge les operateurs de calcul sur les int pour que si la valeur = INFINITE, on n'effectue aucun calcul.
Messages postés
111
Date d'inscription
mercredi 2 février 2005
Statut
Membre
Dernière intervention
5 août 2011
1
Pour ma part je n'ai jamais vu une variable de type Infinie

PS : un Integer est su 16 bits et Long est sur 32 bits...
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
Dans la norme IEEE
Je sais qu'on peut codé des nombres infinis :)

if(!Meilleur("Joky")) return ERREUR;<
Messages postés
746
Date d'inscription
vendredi 17 juin 2005
Statut
Membre
Dernière intervention
23 mai 2007
10
Un int sur 16 bits ?
Tu compile sur quel OS ? Car avec les compilateurs de notre époque (des compilateurs 32 bits), les int sont de même taille que les long je pense (en tout cas, un int = 32 bits). Enfin, je me trompe peut-être, mais moi, on m'a appris que :
-short = 16 bits
-int = 32 bits
-long = 32 bits
-__int64 = 64 bits
Messages postés
987
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
30 août 2012
24
Suffit de faire un sizeof(int) et vous serez fixés.

++
Messages postés
746
Date d'inscription
vendredi 17 juin 2005
Statut
Membre
Dernière intervention
23 mai 2007
10
Et j'avais raison ^^
sizeof(int) renvoie 4.
4*8 étant égal à 32, cela fait qu'un int est bien codé sur 32 bits.

sizeof(long) renvoie aussi 4.
Messages postés
111
Date d'inscription
mercredi 2 février 2005
Statut
Membre
Dernière intervention
5 août 2011
1
Je viens de relire mon bouquin de C et il me dise que contrairement au type de variable Short (2octets) et long (4octets), le type int n'occupe pas un nombre figé d'octets.


Développant sous Linux avec Gcc le type Int est sur 2 octets. En effet, sous C++ Builder le type int est sur 4 octets.

Tout le monde avait raison...
Messages postés
429
Date d'inscription
mardi 6 juillet 2004
Statut
Membre
Dernière intervention
12 janvier 2008

Hello,
je viens confirmer le post de JejeLand:
Un short est codé sur 2 octets
Un long est codé sur 4 octets
Un int est codé sur 2 ou 4 octets suivant le compilateur.

C'est ce que j'ai appris en cours