cs_sena
Messages postés126Date d'inscriptionjeudi 9 janvier 2003StatutMembreDernière intervention15 février 2005
-
9 avril 2003 à 14:54
cs_payen
Messages postés252Date d'inscriptionmercredi 25 octobre 2000StatutMembreDernière intervention 1 mai 2005
-
9 avril 2003 à 23:03
Bonjour,
voila ce que je fais:
int variable;
variable = 367200;
Ceci fonctionne.
or je lis dans les bouqins qu'un int ne doit pas dépasser +32768
Comment ce fait il alors que cela fonctionne quand même?
Est-ce normal ?
Est il tout de meme préférable d'utiliser un long int? (je pense que oui ...)
superpa
Messages postés113Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 5 janvier 2004 9 avril 2003 à 15:50
En fait, si mes souvenirs sont bons, un int était limité à 32768 au début. Maintenant, ils sont indentiques aux longs -> + de 2 milliards. Je pense que ca a changé avec l'architecture 32bits.
Avant, un int était sur 16bits et un long 32.
cs_payen
Messages postés252Date d'inscriptionmercredi 25 octobre 2000StatutMembreDernière intervention 1 mai 2005 9 avril 2003 à 16:16
D'une maniere generale, comme l'a fait remarquer BruNews, pour connaitre la taille (en octets) d'une type : sizeof(type). Apress pour connaitre la valeur maximale acceptee : (2^8)^sizeof(type).
Et oui, un octet est code sur 8 bits. donc, dans un octet, on peut mettre 2^8 valeurs ...
Pour le type int, ca depend des machines, mais a priori, c'est sur 4 octets ...
cs_vieuxLion
Messages postés455Date d'inscriptionsamedi 26 octobre 2002StatutMembreDernière intervention 6 avril 20048 9 avril 2003 à 19:10
Attention !
la valeur maximale n'est PAS (2^8)^sizeof(type)
CAR par défaut la déclaration : int i; equivaut à signed int i;
le premier bit code donc le signe.
pour être exact, ce nombre doit correspondre à une déclaration unsigned int i;
sinon, cela donne l'intervalle
[-2^(8*sizeof(type)-1), 2^(8*sizeof(type)-1)-1]
Vous n’avez pas trouvé la réponse que vous recherchez ?