CCS C - probleme de multiplication

Fermé
Rind - 22 mai 2010 à 16:22
emit-fr Messages postés 19 Date d'inscription vendredi 29 mai 2009 Statut Membre Dernière intervention 8 décembre 2021 - 8 juin 2010 à 11:32
Bonjour,

J'ai un gros soucis pour programmer un PIC 16F876A en C...

J'envoie ce code:

int8 m[32][3];
int32 temp;

matrix[0][0] = 100;
printf("%Lu \n", 4096*100);
printf("%Lu \n", 4096*m[0][0]);

temp = m[0][0]*temp;
printf("%Lu \n", temp);

Les trois résultats devraient être les mêmes...
Mais j'obtiens : 409600 16384 16384

Je suis complètement perdu là... Avez vous une idée ?

1 réponse

emit-fr Messages postés 19 Date d'inscription vendredi 29 mai 2009 Statut Membre Dernière intervention 8 décembre 2021 8
Modifié par emit-fr le 8/06/2010 à 11:36
Bonjour,

Il faut transtyper pour que le compilo "comprenne" que l'on souhaite un résultat sur 32 ou 24 bits dans votre cas !

printf("%Lu \n", (int32)4096*m[0][0]); 


temp = m[0][0]; 
temp *= 100; 
printf("%Lu \n", temp); 


https://www.emit-fr.com/ : Conception électronique
1