2009-08-13 7 views
0

Comment convertir nombre entier de bytes chaîne (NSString d'octets),converti à Int octets (NSString)

I utilisé le code suivant carbonisation barr [4];
barr [0] = (entier non signé) (num & 0xff); Barrette [1] = (entier non signé) ((num >> 8) & 0xff);
barr [2] = (unsigned int) ((num >> 16) & 0xff);
barr [3] = (entier non signé) (num >> 24); NSString * str = [NSString stringwithformat: @ "% x", barr];

mais je reçois "BFFFF648" mais pas dans les données binaires dont je veux que NSlog imprime des données binaires illisibles?

+1

ce n'est pas clair pour moi ce que vous voulez faire. Pouvez vous donner un exemple? –

Répondre

2

Si vous voulez réellement une chaîne d'octets: NSString n'est pas la bonne structure de données pour représenter les octets. Il est destiné à représenter du texte, et est sujet à la conversion entre les encodages et diverses autres transformations. Pour représenter une chaîne d'octets, utilisez NSData. (Par exemple, quelque chose comme [NSData dataWithBytes:&myInteger length:sizeof(myInteger)].)

+0

L'utilisation de 'NSData' comme indiqué ci-dessus peut ne pas être suffisante. Cette ligne de code peut avoir des effets différents sur différentes architectures matérielles en raison de l'endianness. –

+0

Traiter les octets bruts d'un type de données multi-octets est intrinsèquement lié au matériel et à son endianness. – Chuck