2010-01-08 75 views

回答

4

我會用System.BitConverter長轉換爲字節數組,然後System.Convert.ToBase64String。您可以在兩個類中使用相應的方法將其反轉。

5

如果只應使用可打印字符,那麼你只限於32..127,所以這是真的基部96,否則,以128

要轉換到基座96,保持由96分其餘的+ 32將會是你在製作字符串時加入的字符。事情是這樣的:

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:很好的答案。但我認爲代碼片段可能會幫助他,儘管 – Toad 2010-01-08 08:55:25

+0

@reinier:修正了這個問題。 – Tarydon 2010-01-08 08:56:51

+0

需要更多的迭代。您的解釋只會返回最後一位96位數字,即單位。我認爲你的意思是模96的數值,在你的數字串前加上(餘數+32),從源數值中減去它,除以96再重新開始。繼續下去,直到你的價值爲零。 – Lazarus 2010-01-08 09:12:09

相關問題