J'essaie de comprendre comment convertir un NSInteger, disons 56, à un NSString qui est une représentation binaire de la valeur d'origine (int). Peut-être que quelqu'un connaît une technique de formatage qui peut accepter 56 et retourner "111000" dans l'objectif C. Merci à tous.Comment faire pour convertir NSInteger à une valeur (chaîne) binaire
Répondre
Il n'y a pas d'opérateur de formatage intégré pour faire cela. Si vous voulez convertir en une chaîne hexadécimale, vous pouvez faire:
NSString *str = [NSString stringWithFormat:@"%x", theNumber];
Pour le convertir en une chaîne binaire, vous devrez construire vous-même:
NSMutableString *str = [NSMutableString stringWithFormat:@""];
for(NSInteger numberCopy = theNumber; numberCopy > 0; numberCopy >>= 1)
{
// Prepend "0" or "1", depending on the bit
[str insertString:((numberCopy & 1) ? @"1" : @"0") atIndex:0];
}
En gros:
-(void)someFunction
{
NSLog([self toBinary:input]);
}
-(NSString *)toBinary:(NSInteger)input
{
if (input == 1 || input == 0) {
return [NSString stringWithFormat:@"%d", input];
}
else {
return [NSString stringWithFormat:@"%@%d", [self toBinary:input/2], input % 2];
}
}
Que faire si l'entrée est zéro? – epatel
Cela échoue si l'entrée est 0 (ou en fait si le dernier bit est 0), et alloue et libère également N objets chaîne, où N est le nombre de bits dans le nombre. Pas très efficace. –
D'où à peu près. Mais bonne prise. –
NSString * binaryStringFromInteger(int number)
{
NSMutableString * string = [[NSMutableString alloc] init];
int spacing = pow(2, 3);
int width = (sizeof(number)) * spacing;
int binaryDigit = 0;
int integer = number;
while(binaryDigit < width)
{
binaryDigit++;
[string insertString:((integer & 1) ? @"1" : @"0")atIndex:0];
if(binaryDigit % spacing == 0 && binaryDigit != width)
{
[string insertString:@" " atIndex:0];
}
integer = integer >> 1;
}
return string;
}
Je suis parti de la version d'Adam Rosenfield, et modifié pour:
- ajouter des espaces entre les octets
- poignée entiers signés
Exemple de sortie:
-7 11111111 11111111 11111111 11111001
7 00000000 00000000 00000000 00000111
-1 11111111 11111111 11111111 11111111
2147483647 01111111 11111111 11111111 11111111
-2147483648 10000000 00000000 00000000 00000000
0 00000000 00000000 00000000 00000000
2 00000000 00000000 00000000 00000010
-2 11111111 11111111 11111111 11111110
- 1. Convertir une chaîne de base25 à chaîne binaire en Java
- 2. Comment convertir NSDecimalNumber en NSInteger?
- 3. Comment convertir une chaîne binaire en nombre en Perl?
- 4. Comment convertir une chaîne en ascii en binaire en C#?
- 5. Comment convertir une chaîne en binaire dans Teradata?
- 6. C++ Conversion d'une valeur binaire en octets en une chaîne
- 7. comment faire subonic convertir une chaîne à mon personnalisé Type
- 8. IPhone - UIImage à chaîne binaire
- 9. Convertir un nombre en chaîne binaire
- 10. Ruby: Comment convertir une chaîne en binaire et à écrire à un fichier
- 11. Convertir la chaîne binaire en bigint dans MySQL?
- 12. Convertir deux à chaîne
- 13. Comment faire pour convertir le résultat de chaîne de enum avec overrenced toString() retour à enum?
- 14. récupération de valeur de nombre entier de la UITextField dans une variable NSInteger
- 15. Comment faire une distribution binaire de l'application Qt pour Linux
- 16. Comment convertir une valeur de version de chaîne en valeur numérique dans Inno Setup Scripts?
- 17. Comment convertir une chaîne en TimeSeriesDataItem
- 18. Convertir l'image en binaire?
- 19. Comment faire pour convertir NSString en octets
- 20. Comment inverser la chaîne en binaire
- 21. Comment puis-je convertir une chaîne binaire codée en caractères hexadécimaux dans SQL Server?
- 22. Comment convertir une chaîne en CharSequence?
- 23. comment convertir la chaîne en fichier entier binaire en utilisant la ligne de commande sous Linux
- 24. SQL Server Convertir un entier en chaîne binaire
- 25. Comment convertir java.hprof.txt au format binaire hprof?
- 26. Comment convertir une chaîne en OctetString (C#)?
- 27. comment convertir une chaîne passée dans un constructeur à Uri?
- 28. Comment puis-je convertir un nombre binaire en caractère chaîne à l'aide du script Perl?
- 29. Ajout de NSInteger à NSMutableData
- 30. Comment faire pour que DateTimePicker affiche une chaîne vide?
Vous obtenez une de ces erreurs jaunes si vous ne le faites pas 'NSMutableString * str = [NSMutableString stringWithFormat : @ ""]; ' –