Int32的最短字符串表示形式

Car*_*lis 1 c# asp.net string algorithm

我需要将Int32一个代码转换为必须在Web表单上输入的代码.为了让访问者保持简单,这段代码需要尽可能简单和简短.

有没有人知道一个很好的算法,Int32只用[0-9]和[AZ] 转换为最短的字符串表示?

Ita*_*aro 6

一个基地36表示是你想要的.这使用字母和数字符号来编码数字,用于非常紧凑的表示.

  • Base 36意味着你最终可以使用I10O010,这对游客来说并不是特别简单...... (2认同)

Mar*_*ell 6

可以编码到base-36,但是对于每个人的理智(尤其是你的用户,处理I vs 1,O vs 0等),我建议只是坚持使用hex; 加上它内置:

    int value = 22334;
    string hex = Convert.ToString(value, 16); // 573e
    value = Convert.ToInt32(hex, 16);
Run Code Online (Sandbox Code Playgroud)

  • 除此之外,基数36仍然可以需要7位数,因此在十六进制(8位数)上获得的收益非常少. (2认同)