Comment obtenir la valeur d'un certain bit à partir d'un octet ou d'un entier? La seule réponse similaire que j'ai pu trouver est pour un caractère spécifique à l'intérieur d'une chaîne. J'essaie de convertir un nombre binaire en un nombre décimal, et peut-être y a-t-il une façon beaucoup plus simple de le faire, mais je pensais à ceci: multiplier 2^(position d'entier de droite) par 1 ou 0, selon sur la valeur de l'entier à la position précédemment mentionnée. Des conseils?Algorithme de conversion binaire dans l'objectif-c
Répondre
NSString * binary = @"0011010";
long value = strtol([b UTF8String], NULL, 2);
wow Je ne sais pas comment cela fonctionne mais cela rend la vie beaucoup plus facile. Comment cela marche-t-il? – Seany242
Il existe plusieurs voies pour obtenir la valeur du bit dans un octet ou un nombre entier. Tout dépend de vos besoins.
Une façon serait d'utiliser un masque avec des opérateurs au niveau du bit.
int result = sourceValue & 8; // 8 -> 0x00001000
// result non zero if the 4th bit from the right is ON.
Vous pouvez également décaler les bits un par un et lire, disons, le bit le plus à droite.
for (int i = 0; i < 8; i++)
NSLog(@"Bit %d is %@", i, (sourceValue % 2 == 0) ? @"OFF" : @"ON");
sourceValue = sourceValue >> 1; // shift bits to the right for next loop.
}
Ou si vous voulez juste la représentation de texte pour un entier, vous pouvez laisser NSNumber faire le travail:
NSString* myString = [[NSNumber numberWithInt:sourceValue] stringValue];
merci beaucoup! Je suis assez novice en programmation, pourriez-vous m'expliquer un peu? La valeur de la source est-elle un int? et qu'est-ce que le (sourceValue% 2 == 0)? @ "OFF": @ "ON" partie faire? – Seany242
Dans mes exemples de code, 'sourceValue' est un' int' et contient la valeur dont vous voulez extraire les bits. Le '(condition)? value1: value2' part est un [opérateur ternaire] (http://stackoverflow.com/questions/2595392/what-does-the-question-mark-and-the-colon-ternary-operator-mean-in-objectiv) . C'est similaire à une instruction if. 'a% b' est l'opérateur [modulo] (http://en.wikipedia.org/wiki/Modulo_operation). Il renvoie le reste de la division 'a/b'. –
est-ce que scorevalue commence à 1 – Seany242
- 1. algorithme de tri d'insertion binaire
- 2. Algorithme de multiplication binaire Python?
- 3. binaire arbre de recherche algorithme
- 4. Algorithme de recherche binaire randomisé
- 5. Conversion de code Gray en binaire
- 6. Algorithme d'arbre binaire multi-threadé
- 7. Nombre entier de conversion binaire dans Simulink
- 8. Python Conversion binaire
- 9. Conversion de représentations entières char en binaire
- 10. Conversion décimal en binaire
- 11. explication de conversion binaire Int
- 12. Conversion décimale en binaire
- 13. Conversion de chaîne en binaire
- 14. Conversion de décimal en binaire
- 15. Algorithme de diff binaire pour logiciel commercial
- 16. conversion hexadécimal en binaire
- 17. Conversion hexadécimal en binaire
- 18. Algorithme de conversion d'une arborescence binaire en une expression mathématique post-fixe?
- 19. binaire conversion en texte dans linux
- 20. binaire à la conversion hexadécimal dans tsql
- 21. Conversion décimale en binaire dans l'assemblage MIPS
- 22. Conversion d'IOstream binaire en fichier
- 23. Confusion octale en conversion binaire
- 24. binaire Recherche Arbre avec Supernodes algorithme
- 25. décimal à la conversion binaire
- 26. conversion décimal en binaire signé
- 27. Python: conversion binaire en image
- 28. Python: Conversion de binaire en chaîne
- 29. Python: conversion de chaîne binaire/hexadécimale?
- 30. Conversion de fichier binaire en fichier audio
Qu'est-ce qu'un « int dans un autre int »? –
un 1 à l'intérieur d'un 11101101 – Seany242
Bien que n'étant pas un doublon exact, vous pouvez trouver cette question utile: [C/C++ vérifier si un bit est défini, c'est-à-dire une variable int] (http://stackoverflow.com/q/523724/45249 – mouviciel