Problème dans un corrigé ?
Discutez d'informatique ici !
par Dominique Lefebvre » 07 Nov 2008, 19:25
Kimou a écrit:Bonjour pouvez vous me dire si il y a bien une erreur a l'endroit indiqué ? merci
Le sujet:
[url="http://img372.imageshack.us/my.php?image=infosujetcw2.jpg"]http://img372.imageshack.us/my.php?image=infosujetcw2.jpg[/url]
La correction:
[url="http://img147.imageshack.us/my.php?image=infocorrectionhs2.jpg"]http://img147.imageshack.us/my.php?image=infocorrectionhs2.jpg[/url]
Bonsoir,
Le plus simple et aussi le plus formateur, c'est que tu prennes ton plus bel ordinateur et que tu fasses la manip. Un petit prog et hop, tu connaîtras la réponse....
-
uztop
- Membre Complexe
- Messages: 2396
- Enregistré le: 12 Sep 2007, 11:00
-
par uztop » 07 Nov 2008, 19:38
Bonsoir,
oui c'est bien de faire une manip mais dans le cas présent, effectivement, par définition de !a, si a est false !a est true.
Mais ce qui est important ici, c'est la valeur de d.
Par contre, ça manque d'accolades ce truc, ça va marcher comme ça, mais c'est illisible à mon avis; je pense que c'est une bonne pratique de toujours mettre des accolades.
-
Kimou
- Membre Relatif
- Messages: 250
- Enregistré le: 30 Oct 2005, 10:46
-
par Kimou » 07 Nov 2008, 20:24
merci pour vos réponses, oui j'ai bien trouvé la valeur de d mais j'ai mis un peu de temps donc je voulais etre sûr ...
Sinon je pourrais savoir sur combien d'octets sont codés les int, puis les float, double et enfin long s'il vous plait, je confond toujours et le corrigé n'est vraiment pas clair. parce que je pensais que double c'était sur 64 bits (on cherche a stocker un nombre entre 0 et 2^60) et donc ca serait plausible a premiere vue et le corrigé dit cela:
"Les types float et double permettent grâce a leur exposant de représenter des nombres aussi grand que 2^60, mais même le type double n'est pas assez précis pour conserver la valeur exacte d'une nombre comme 2^60 -5: il n'y a que 52 bits dans la mantisse. On perd donc de la précision. On peut utliser le type long codé sur 64 bits en complément à 2 donc pour toute les valeurs entre -2^63 et 2^63 -1"
-> Pourquoi il n'y a en réalité que 52 bits?
->Long et double sont codés pourtant tous deux sur 64 bits nan ?
merci beaucoup d'avance
-
Doraki
- Habitué(e)
- Messages: 5021
- Enregistré le: 20 Aoû 2008, 11:07
-
par Doraki » 07 Nov 2008, 20:45
les formats long long int et double sont stockés sur 64 bits mais dans le cas de double, qui est un format en virgule flottante, une partie est utilisée pour stocker l'exposant du nombre, et 2^60-5 sera fatalement approximé à 2^60.
-
uztop
- Membre Complexe
- Messages: 2396
- Enregistré le: 12 Sep 2007, 11:00
-
par uztop » 07 Nov 2008, 20:49
pour les int, ça dépend du type de processeur: 2 octets pour les 16 bits, 4 pour les 32 bits (et a priori 8 pour les 64 bits mais je suis pas sur)
Pour les doubles c'est 8 bits mais il ne faut pas oublier qu'ils sont signes: le premier bit sert à déterminer le signe et il n'en reste donc que 63.
Pour les float, il faut aussi coder la position de la virgule, ce qui fait perdre quelques bits.
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 4 invités