(tous sont déclarés comme ints, ne sont initialisés à quoi que ce soit à l'avance. J'ai inclus math.h et je suis en compilant avec -lm)C programme donnant une sortie incorrecte pour les mathématiques simples!
cachesize = atoi(argv[1]);
blocksize = atoi(argv[3]);
setnumber = (cachesize/blocksize);
printf("setnumber: %d\n", setnumber);
setbits = (log(setnumber))/(log(2));
printf("sbits: %d\n", setbits);
lorsqu'il est administré cachesize comme 1024 et blocksize que la sortie 16 est la suivante :
setnumber: 64
sbits: 5
mais log (64)/log (2) = 6!
Cela fonctionne correctement quand cachesize 512 et bloque 32. Je n'arrive pas à gagner. J'espere vraiment que c'est une erreur stupide de ma part, et je serais reconnaissant si quelqu'un pouvait indiquer ce que c'est! Je vous remercie! PS: J'ai posté cela dans Yahoo Answers d'abord, mais c'était probablement stupide. Je ne referai pas ça.
@DuffDuff - ne pas oublie d'accepter la meilleure réponse. –
+1 à poster sur Yahoo Réponse étant une idée stupide :) –