J'ai un UUID (nombre de 128 bits) représenté comme un nombre décimal et j'ai besoin de l'analyser en forme numérique en C. Ma structure de données cible est un char [16] et l'utilisation d'une bibliothèque bignum n'est pas une option . Quelqu'un peut-il me diriger vers un algorithme approprié?Comment analyser une chaîne UUID décimale dans C?
1
A
Répondre
1
L'algorithme naïf est assez simple:
char number[] = "79625568443717255337188391839044322587";
unsigned char uuid[16] = { 0 };
for (char* n = number; *n; n++) {
unsigned c = *n - '0';
for (int i = 0; i < 16; i++) {
c += uuid[i] * 10;
uuid[i] = c % 256;
c /= 256;
}
}
C'est plus simple qu'une opération bignum typique parce que le multiplicateur 10 est inférieure à la taille de l'unité et la longueur du numéro est fixé.
Vous pouvez accélérer en travaillant dans des unités plus grandes que char (par exemple uint32_t
), aussi longtemps que c
est plus grand encore (par exemple uint64_t
), bien que je doute que ce soit nécessaire.
Questions connexes
- 1. Comment analyser une chaîne décimale comme .09?
- 2. comment analyser un UUID en C#
- 3. Analyser une valeur décimale à partir d'une chaîne en Ruby
- 4. C# chaîne à erreur décimale
- 5. Comment convertir une chaîne hexadécimale en décimale?
- 6. Chaîne à l'analyse décimale C#
- 7. comment analyser une chaîne dans iphone, objectif c?
- 8. comment analyser une valeur décimale de la réponse JSON
- 9. Comment analyser une chaîne et obtenir une formule? en C#
- 10. C# Convertir la chaîne décimale en int
- 11. Comment analyser une chaîne DateTime
- 12. Comment analyser une chaîne entre guillemets dans une autre chaîne?
- 13. Comment analyser une chaîne JSON dans Delphi?
- 14. Comment analyser une chaîne dans jQuery
- 15. Comment analyser une chaîne dans ASP.NET?
- 16. Comment analyser une chaîne dans BigInteger?
- 17. comment analyser une chaîne xml dans Postgres
- 18. C# comment analyser la procédure stockée Chaîne
- 19. Analyser une chaîne dans un objet DateTime dans C#
- 20. Analyser une chaîne dans haskell
- 21. Ajouter une décimale à une chaîne
- 22. Comment analyser une chaîne de date avec Objective-C
- 23. comment puis-je analyser une chaîne en utilisant c
- 24. Chaîne convertie en chaîne au format UUID
- 25. C# Coulée à une décimale
- 26. Bibliothèque UUID pour C?
- 27. une décimale pour le format de chaîne
- 28. Chaîne décimale en caractère
- 29. Conversion d'une décimale à une chaîne équivalente
- 30. Lecture d'une chaîne d'octets UUID python en C++?
Lorsque vous travaillez avec des uuids, vous travaillez avec RPC. Vous avez sûrement une bibliothèque de support d'exécution pour cela. Le nom commun de la fonction d'assistance est UuidFromString. –
Cela permettrait d'analyser un uuid au format normal (aaaabbbb-cccc-dddd-eeee-ffffgggghhhh, hexadécimal). "Représenté comme un nombre décimal" n'est pas le format normal. – zwol
Vous avez une chaîne contenant la représentation décimale? D'où est-ce que sa vient? Je déposerais une plainte! –