1

我有一个 ID 字段,当添加新记录时会自动递增 1。我不想按原样使用数字 ID,而是将其转换为由 0-9A-Z(无小写字母)组成的 6 个字符串,格式如下:

A00000

数字应该从 0-9 递增,然后是 AZ。

例子

例如,如果我要对数字进行编码7,它应该返回:

A00007

如果我编码13它应该返回的数字:

A0000D

如果我编码36它应该返回的数字:

A00010

希望这是有道理的。任何帮助将不胜感激。

4

2 回答 2

4

建议:整数值加上 604661760。那是 的以 10 为底的值A00000,解释为以 36 为底的数字 ( = 10 * 36 ^ 5 )。

然后将结果编码为 base 36。

根据您的数据范围,您可能希望在添加 604661760 之前将其提升int为 a 。long

于 2012-12-05T00:00:12.453 回答
1

您在这里所拥有的是从以 10 为底的数字到以 36 为底的数字的转换。这是一个从基数 10 转换为基数 K 的算法。修改它以满足您的需要:

http://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Data/toBaseK.html

于 2012-12-04T23:52:38.110 回答