2010-01-08 146 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

相关问题