2010-01-07 9 views
1

J'ai un très grand nombre entier en décimal que j'ai mis dans NSString, j'ai besoin de convertir en valeur NSString de Bytes pour cette grande valeur comment puis-je le faire? Pour votre information, la longueur de NSSting est « 308 »Comment convertir NSString de Decimal en NSString of Bytes

S'il vous plaît aider

Merci

+0

J'ai besoin au format binaire (valeurs de tableau d'octets). –

+0

HI Mike par le code ci-dessous je reçois les mêmes données de chaîne décimale lorsque j'imprime à nouveau comme NSstring, mais je devrais obtenir les données binaires réelles qui sont des caractères illisibles? –

+0

Voulez-vous dire une chaîne de 308 caractères de chiffres ASCII [0-9], et vous voulez le convertir en format binaire? C'est environ 100 octets de long, ou quelque chose comme un entier de 800 bits, si mon estimation est correcte. Vous pouvez écrire une fonction qui lit un chiffre, le convertit en binaire, puis le multiplie par 10. Mais vous devrez gérer vous-même le dépassement. Sauf s'il y a une bibliothèque bignum pour cela. – lucius

Répondre

1

Que voulez-vous dire « chaîne d'octets »?

En particulier, un NSString peut uniquement encapsuler des chaînes avec des codages Unicode valides (et certains non-unicode plus primitifs). Ainsi, "chaîne d'octets" peut ne pas avoir de sens.

Si vous voulez vraiment des octets bruts, vous pouvez le convertir en instance NSData en utilisant les méthodes dataUsingEncoding:* (il y en a deux, selon le besoin).

3

Pour ce faire, vous devrez effectuer les opérations suivantes (en supposant que vous voulez un flux d'octets UTF8-):

NSString *myString; //Assuming your string is here 
NSData *stringData = [myString dataUsingEncoding:NSUTF8StringEncoding]; //This is the NSData representation of the string 
const void *bytes = [stringData bytes]; //This are the raw bit array values