Convertir entier en hexadécimal et de retour à nouveau
Comment puis-je convertir suivants?
2934 (entier) de B76 (hex)
Laissez-moi vous expliquer ce que je suis en train de faire. J'ai les Id d'Utilisateur dans ma base de données qui sont stockés comme des entiers. Plutôt que d'avoir les utilisateurs de référence de leur Id je veux leur permettre d'utiliser la valeur hex. La principale raison est parce que c'est plus court.
Ainsi, non seulement ai-je besoin pour aller de nombre entier en hexadécimal, mais j'ai aussi besoin pour aller de hex entier.
Est-il un moyen facile de faire cela en C#?
- Pour info, vous serez délinquance pavé Numérique utilisateurs.
- Vous avez un bon point. Mais nous essayons de convertir l'entier ID dans quelque chose qui prend moins de caractères. Merci pour l'aperçu tho.
- Enregistrement de numéros comme les numéros de prendre le moins d'espace tout en encore lisible. Par exemple, 4 octets pour les nombres jusqu'à 2bln (entier). Ou si c'est trop long pour tout type numérique, l'utilisation d'un champ binaire.
- Les OP membres de j'ai les Id d'Utilisateur dans ma base de données qui sont stockés comme des entiers. Plutôt que d'avoir les utilisateurs de référence de leur Id je veux leur permettre d'utiliser la valeur hex. donc, codette est de stocker les valeurs dans un int, mais la conversion de/de hex pour l'utilisateur.
Vous devez vous connecter pour publier un commentaire.
de http://www.geekpedia.com/KB8_How-do-I-convert-from-decimal-to-hex-and-hex-to-decimal.html
decValue
est sans doute mieux queintValue
en raison d'un nombre entier peut être exprimé soit en notation décimale ou hexadécimale de la notation.intValue
est techniquement plus ambigu, commedecValue
indique clairement (dans ce contexte) que vous travaillez avec la représentation décimale plutôt que de l'hexadécimal. Juste mon 2A¢.Utilisation:
Voir Comment: Convertir Entre les Chaînes Hexadécimales et les Types Numériques (Guide de Programmation C#) pour plus d'informations et d'exemples.
Essayez ce qui suit pour convertir en hexadécimal
Et de retour à nouveau
J'ai vraiment en question la valeur de cela, cependant. Vous êtes à l'objectif déclaré est de faire de la valeur plus courte, qui elle, mais ce n'est pas un but en soi. - Vous vraiment dire soit de le rendre plus facile à mémoriser ou plus facile à taper.
Si tu veux plus facile à mémoriser, puis vous prenez un pas en arrière. Nous savons que c'est toujours la même taille, il suffit de encodés différemment. Mais vos utilisateurs ne savent pas que les lettres sont limitées à "A-F", et donc l'ID d'occuper le même espace conceptuel pour eux, comme si la lettre 'A-Z' ont été autorisés. Donc, au lieu d'être à mémoriser un numéro de téléphone, c'est plus comme la mémorisation d'un GUID (de longueur équivalente).
Si tu veux taper, au lieu d'être en mesure d'utiliser le clavier, l'utilisateur doit utiliser la partie principale du clavier. Il est susceptible d'être plus difficiles à saisir, car il ne sera pas un mot de leurs doigts reconnaître.
Une bien meilleure option est de les laisser choisir un nom d'utilisateur réel.
Hex:
Int:
J'ai créé ma propre solution pour la conversion de int en chaîne Hexadécimale et revenir avant que j'ai trouvé cette réponse. Il n'est pas surprenant, c'est beaucoup plus rapide que la .net une solution, car il y a moins de code frais généraux.
Code de Timing:
Résultats:
Un mode réponse tardive, mais avez-vous pensé à une sorte de
Integer
raccourcissement de la mise en œuvre? Si le seul but est de faire de l'ID de l'utilisateur, aussi courte que possible, je serais intéressé de savoir si il n'y a aucune autre raison apparente pourquoi vous avez spécifiquement besoin conversion hexadécimale - à moins que j'ai manqué, bien sûr. Est-il clair et connu (si nécessaire) que les Id d'utilisateur sont en fait une représentation hexadécimale de la valeur réelle?NET FRAMEWORK
PASCAL >> C#
Quelque chose de la vieille école très ancienne procédure de pascal converti en C #
Je ne peux pas écrire de commentaires, mais certaines personnes sont de prêter à tort à propos de cette
intValue.ToString("X2")
sera "spécifier le nombre de chiffres", ou de produire "toujours à deux chiffres de sortie".Ce n'est pas vrai, le
2
spécifie minimum nombre de chiffres. Donc si vous avez des noirs opaques ARGB de la couleur, la méthode se produisentFF000000
pas00
Impression entier en hexadécimal valeur zéro-padding (si nécessaire) :
https://docs.microsoft.com/en-us/dotnet/standard/base-types/how-to-pad-a-number-with-leading-zeros
int hex:
hex int: