S'il vous plaît dites-moi comment convertir des octets à NSInteger/int dans l'objectif-c dans la programmation iPhone?comment convertir la valeur d'octet en int dans l'objectif-c
Répondre
Que voulez-vous dire par "Octets"? Si vous voulez convertir un seul octet représentant la valeur entière à int (ou NSInteger), utilisez juste « = »:
Byte b = 123;
NSInteger x;
x = b;
comme octet (le même que celui unsigned char-1 octet entier non signé) et NSInteger (Identique à int - entier signé de 4 octets) sont tous les deux des types entiers simples et peuvent être convertis automatiquement. Vous devriez en savoir plus sur "c types de données" et "règles de conversion". par exemple http://www.exforsys.com/tutorials/c-language/c-programming-language-data-types.html
Si vous souhaitez convertir plusieurs octets en stockant une valeur int, la conversion dépend de la structure de ces données: nombre d'octets par valeur, signés ou non.
cette _is_ est une question objective-c. NSInteger est défini dans NSObjCRuntime.h et le premier #import dans NSObjCRuntime.h est
NSInteger est un typedef, pas un mot-clé objectif-C. C'est toujours une question simple. – NSResponder
Utilisez l'opérateur "=
".
Pouvez-vous me montrer avec un petit exemple? Je veux savoir s'il existe une méthode intégrée pour convertir des octets en int. – suse
NSInteger x = 3;
unsigned char y = x;
int z = x + y;
le monsieur qui -1 ma réponse s'il vous plaît expliquer pourquoi ... – ohho
parce que vous l'avez en arrière? Toujours pas digne d'une downvote étant donné le manque de qualité de la question. – bbum
y est un octet. z est un nombre entier. la question est "comment convertir la valeur des octets en int en objectif-c" ... peu importe. Je vais m'y habituer ... ;-) – ohho
Si par octet, vous voulez dire une valeur de 8 bits non signée, ce qui suit fera l'affaire.
uint8_t foo = 3; // or unsigned char foo...
NSInteger bar = (NSInteger) foo;
ou même
NSInteger bar = foo;
Génial ça marche pour moi. Merci tas, j'ai cherché des âges pour faire cela avec hex. par exemple. Sing8 foo = 0xF4 convertissant cela à un int –
Je pense:
unsigned char data[] = { 0x00, 0x02, 0x45, 0x28 };
NSInteger intData = *((NSInteger *)data);
NSLog(@"data:%d", intData); // data:675611136
NSLog(@"data:%08x", intData); // data:28450200
Donc, méfiez-vous de l'ordre des octets.
Que voulez-vous dire exactement par convertir des octets en int? –
'octets'? Quel genre d'octets? Les données? chaîne? quelque chose sur le net? xml? Hein? – bbum
@bbum, la "valeur" ne vient pas avec un "s" dans le titre de la question. – ohho