2010-12-05 5 views
0

Je fais un convertisseur de nombre binaire en décimal sur iphone. J'ai un problème quand j'essaie de prendre chaque chiffre d'un numéro et de faire des calculs. J'ai essayé char, characterAtIndex mais ils ont tous échoué à faire le calcul ou j'ai eu la syntaxe complètement faux. Quelqu'un peut-il me montrer comment faire un tel casting ou il y a une approche plus facile?Comment faire un problème lié à la chaîne

Répondre

0

Votre problème est d'obtenir des nombres de chaînes?

La meilleure façon d'obtenir un nombre entier d'un personnage est d'utiliser la table ascii, comme ceci:

NSString *stringOfNums = @"15"; 
char c; 
int num; 
for (int i = 0; i < [stringOfNums length]; ++i) { 
    c = [stringOfNums characterAtIndex:i]; 
    num = c - 48; // 0 is 48 in ascii table 
    printf("\nchar is %c and num is %d", c, num); 
} 

L'avantage de cette méthode est que vous pouvez valider sur une base char-par-char qui chacun tombe dans une gamme de 48 à 57, les chiffres ASCII.

Ou vous pourriez faire la conversion en une seule étape à l'aide NSNumberFormatter, comme décrit ici: How to convert an NSString into an NSNumber

En ce qui concerne la conversion binaire-décimal, travaille votre formule sur papier? Faites-le d'abord.