Variable infinie

blanccc Messages postés 23 Date d'inscription mercredi 7 décembre 2005 Statut Membre Dernière intervention 9 juin 2006 - 10 mai 2006 à 10:40
goutbouyo Messages postés 429 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 12 janvier 2008 - 10 mai 2006 à 16:34
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

JejeLand Messages postés 111 Date d'inscription mercredi 2 février 2005 Statut Membre Dernière intervention 5 août 2011 1
10 mai 2006 à 11:24
Je ne pense pas que tu puisse faire ça car une variable de type integer varie de 0 à 65535 Octets en non signé.
nightlord666 Messages postés 746 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 23 mai 2007 10
10 mai 2006 à 11:39
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...
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
10 mai 2006 à 11:43
Quand tu utilise n'importe quel type de variable, ca valeur "infinie" sera la valeur maximun que cette variable peut contenir.
++
blanccc Messages postés 23 Date d'inscription mercredi 7 décembre 2005 Statut Membre Dernière intervention 9 juin 2006
10 mai 2006 à 14:13
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 !

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nightlord666 Messages postés 746 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 23 mai 2007 10
10 mai 2006 à 14:15
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.
JejeLand Messages postés 111 Date d'inscription mercredi 2 février 2005 Statut Membre Dernière intervention 5 août 2011 1
10 mai 2006 à 14:16
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...
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
10 mai 2006 à 14:29
Dans la norme IEEE
Je sais qu'on peut codé des nombres infinis :)

if(!Meilleur("Joky")) return ERREUR;<
nightlord666 Messages postés 746 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 23 mai 2007 10
10 mai 2006 à 14:38
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
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
10 mai 2006 à 14:42
Suffit de faire un sizeof(int) et vous serez fixés.

++
nightlord666 Messages postés 746 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 23 mai 2007 10
10 mai 2006 à 14:44
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.
JejeLand Messages postés 111 Date d'inscription mercredi 2 février 2005 Statut Membre Dernière intervention 5 août 2011 1
10 mai 2006 à 15:32
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...
goutbouyo Messages postés 429 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 12 janvier 2008
10 mai 2006 à 16:34
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
Rejoignez-nous