2010-01-08 4 views

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; 
    } 
+0

tarydon: Bonne réponse. Mais je pense qu'un fragment de code pourrait l'aider si – Toad

+0

@reinier: Correction de cela. – Tarydon

+0

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

Questions connexes