Mise en forme de Nombre hexadécimal en Javascript
J'ai un nombre hexadécimal en javascript. À des fins d'affichage, je voudrais formater la chaîne:
ffffffff-ffff-ffff
00000000-0000-01ff
(8 chiffres)-(4 chiffres)-(4 chiffres) avec collier de zéros sur le devant
J'ai essayé d'écrire mon propre boucle de format de l'arbitraire d'un nombre hexadécimal dans ce format, mais cela semble être quelque chose qui devrait être disponible en javascript déjà. Est-il un moyen intégré pour formater un nombre hexadécimal en javascript?
Merci!
Il n'y a malheureusement aucun moyen de format des nombres hexadécimaux en JavaScript. Mais découvrez ce lien, peut-être que ça aide.
OriginalL'auteur David | 2012-03-28
Vous devez vous connecter pour publier un commentaire.
Je ferais un processus en deux étapes:
1) convertir le numéro à 16 chiffres hex avec les zéros non significatifs:
2) ajouter des tirets
OriginalL'auteur knabar
Plus de knabar réponse:
Si votre numéro est vraiment un 64 bits, vous devez être conscient que javascript a seulement des doubles, en tête autour de 53 bits de précision. E. g.
Donc, vous voulez probablement divisé en deux nombres de 32 bits, et le format 8 chiffres à la fois. Ensuite, la deuxième mise en garde grèves: javascript effectue au niveau du bit ops sur signé nombres entiers de 32 bits, et ce code de mise en forme ne peut pas gérer les nombres négatifs.
Car il est assez probable que les numéros que vous souhaitez formaté en hexadécimal sont le résultat de manipulations au niveau du bit, le code peut être modifié pour imprimer en complément à deux:
Ce qui produit la représentation hexadécimale de la partie inférieure de 32 bits de la partie intégrante de l'arbitraire des nombres positifs et négatifs. C'est probablement ce que vous voulez (c'est environ
printf("%08x")
). Certains plus de cas de coin:OriginalL'auteur hexwab
ES6 Version
num.toString(16).padStart(len, "0")
OriginalL'auteur Nilesh
je ne pense pas qu'il y est quelque chose par rapport à cela en javascript, mais les cadres de fournir cette méthode, dans ExtJS 3 il est mis en œuvre cette manière
OriginalL'auteur Saket Patel
Je suppose que le numéro est déjà dans la forme d'une chaîne en raison de limitations décrites dans hexwab de réponse. Si ce n'est pas le cas, lancez le processus par arriver dans une chaîne hexadécimale de longueur arbitraire (appelé
str
) à l'aide quel que soit le mécanisme approprié pour votre situation. Alors:OriginalL'auteur Adam Leggett