Probleme avec des unsigned long long
vidamat
Membre
salut,
j'explique rapidement mon probleme, j'essaie de faire une petite appli qui me permet de calculer le complemet à 97 d'une operation de modulo sur 13 chiffres:
voici le code:
#include <stdio.h>
int main (int argc, const char * argv[]) {
unsigned long long nombrelong=0;
int resultat=0;
printf("Entrez votre nombre");
scanf("%lu",&nombrelong);
resultat = 97 - (nombrelong % 97);
printf("la clé est:%d",resultat);
  return 0;
}
ca me donne des valeurs abberrantes: d'ailleurs si je prends un exemple:
Valeurs exacte : 1290278551031 / 97 =13301840732Â reste 27 et 97 -27 = 70
Valeurs données par l'appli : 89 avec une valeur de "nombrelong" à 1788362231 sur 9 chiffres
QQUN à une idée du problème ??
Merci
j'explique rapidement mon probleme, j'essaie de faire une petite appli qui me permet de calculer le complemet à 97 d'une operation de modulo sur 13 chiffres:
voici le code:
#include <stdio.h>
int main (int argc, const char * argv[]) {
unsigned long long nombrelong=0;
int resultat=0;
printf("Entrez votre nombre");
scanf("%lu",&nombrelong);
resultat = 97 - (nombrelong % 97);
printf("la clé est:%d",resultat);
  return 0;
}
ca me donne des valeurs abberrantes: d'ailleurs si je prends un exemple:
Valeurs exacte : 1290278551031 / 97 =13301840732Â reste 27 et 97 -27 = 70
Valeurs données par l'appli : 89 avec une valeur de "nombrelong" à 1788362231 sur 9 chiffres
QQUN à une idée du problème ??
Merci
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
.
Merci encore
le nib se presente sous la forme de 2 NSTextfield (1 pour l'acquisition du numero de sécu et l'autre pour le resultat) et d'un bouton pour l'action de calculerCle.
voici le code :
/* CalculerCle */
#import <Cocoa/Cocoa.h>
@interface CalculerCle : NSObject
{
  IBOutlet id inText;
  IBOutlet id outText;
unsigned long long numeroSecu;
int cleSecu;
}
- (IBAction)calculerCle:(id)sender;
@end
et l'implementation ;
#import "CalculerCle.h"
@implementation CalculerCle
- (IBAction)calculerCle:(id)sender
{
numeroSecu = [NSDecimalNumber decimalNumberWithString:[NSString localizedStringWithFormat:@%qu,inText]];
cleSecu = 97 - (numeroSecu % 97);
[outText setIntValue:cleSecu];
}
@end
merci de m'eclairer .....
p.S: j'ai aussi essayer le format @%llu et @%ull comme indique dans les docs.
Et tu n'as aucun message lors de la compilation ?
Car tu as mélangé des pointeurs d'object cocoa avec des valeurs que tu penses être des lon long...
Bon, je te donne un début de solution (à mettre dans ta méthode calculerCle:) :
Explication : la classe NSScanner permet d'extraire un "motif" à partir d'une chaà®ne NSString. Ici le "motif" demandé est un long long. Donc on créé un scanner temporaire sur la chaà®ne du premier champ texte (inText), puis on demande d'extraire et de retourner le long long qu'on met dans la variable numSecu par la méthode scanLongLong:. Cette méthode retourne YES si le NSScanner a pu extraire une valeur long long valide, sinon elle retourne NO.
Le reste du code reprend le tien.
.
Merci beaucoup, j'ai beaucoup appris aujourd'hui.
ca marche tres bien et je vais continuer à améliorer 2 ou 3 petites choses.
Merci encore
a +