Ce que je veux vraiment faire est de convertir DateTime.Now.Ticks à la chaîne la plus courte possible sans perdre de précision. Comment est-ce possible? Supposons que nous utilisons un jeu de caractères ASCII 7 bits.Comment convertir un nombre en une base arbitraire?
0
A
Répondre
4
j'utiliser System.BitConverter
pour convertir le temps à un tableau d'octets, puis System.Convert.ToBase64String
. Vous pouvez l'inverser avec les méthodes correspondantes sur les deux classes.
5
Si seuls les caractères imprimables doivent être utilisés, alors vous êtes limité à 32..127, de sorte que est la base vraiment 96. Dans le cas contraire, la base 128.
Pour convertir à la base 96, en divisant par 96. garder la reste + 32 sera le personnage que vous ajoutez à la chaîne que vous construisez. Quelque chose comme ceci:
static string ConvertBase96 (long value) {
string str = "";
while (value > 0) {
char rem = (char)((value % 96) + 32);
str = rem.ToString() + str;
value /= 96;
}
return str;
}
Questions connexes
- 1. Comment convertir une version de chaîne d'un nombre dans une base arbitraire en entier?
- 2. Un algorithme pour convertir un nombre base-10 en un nombre base-N
- 3. Comment convertir une chaîne d'octets en Nombre?
- 4. Comment convertir un nombre numérique en chaîne?
- 5. mod_rewrite - diviser un nombre arbitraire de termes?
- 6. Comment convertir un nombre en octet?
- 7. Comment convertir un nombre négatif en positif?
- 8. Comment convertir un nombre flottant en binaire?
- 9. SQL Comment convertir un nombre décimal en une chaîne
- 10. Existe-t-il un moyen plus rapide de convertir un grand nombre arbitraire en une grande suite d'octets?
- 11. Sélectionnez Something + Un nombre arbitraire Mysql
- 12. Convertir un nombre en Excel en chaîne?
- 13. Convertir une chaîne + un nombre en un objet
- 14. Conversion d'une décimale en un nombre à base mixte (base)
- 15. Comment puis-je convertir une chaîne en nombre en Perl?
- 16. Comment GMP stocke ses entiers, sur un nombre arbitraire d'octets?
- 17. Comment convertir un nombre 30.006649999999994 en 30,01 en js?
- 18. Convertir un nombre à une liste d'entiers
- 19. Comment pouvons-nous convertir un nombre binaire en son nombre octal en utilisant C#?
- 20. Comment convertir un nombre entier en chaîne binaire en C#?
- 21. Comment convertir une chaîne binaire en nombre en Perl?
- 22. Comment convertir une chaîne en nombre entier hexadécimal en Python?
- 23. Comment convertir un intervalle en un nombre d'heures avec postgres?
- 24. comment modéliser correspond à un nombre arbitraire d'arguments?
- 25. Comment abberiez-vous XHTML à un nombre arbitraire de mots?
- 26. Chaîne numérique (taille arbitraire) -> Nombre entiers
- 27. Comment convertir un nombre en bytearray en bit endian order
- 28. Comment convertir un nombre décimal en String en Javascript?
- 29. convertir le nombre en décimal en php
- 30. pour convertir un nombre dans une base inconnue à la base équivalent 10 Numéro
tarydon: Bonne réponse. Mais je pense qu'un fragment de code pourrait l'aider si – Toad
@reinier: Correction de cela. – Tarydon
Il doit y avoir beaucoup plus d'itérations que cela. Votre explication ne retournera jamais que le dernier chiffre de base 96, c'est-à-dire les unités. Je pense que vous voulez dire le modulo 96 de la valeur, préfixez (reste + 32) à la chaîne de chiffres que vous avez, soustrayez-le de la valeur source, divisez-le par 96 et recommencez. Continuez jusqu'à ce que votre valeur soit nulle. – Lazarus