我有这样的长整数:5291658276538691055
我怎样才能通过编程将这个数字转换为4-6个大写字母,这是一个唯一的组合,也可以反转以返回到数字?
例如使用obj-c。

最佳答案

您需要将数字转换为基数26(Hexavigesimal-snappy name!)
Wikipedia article on Hexavigesimal给出了java中的示例代码——您应该能够很容易地适应这一点。
注意:只有使用转换算法才能将前面提到的长数字转换为4-6个大写字母(以26为基数的例子是bcksatkebrybxj)。如果您需要转换成这么短,您只有两个选项:
查找表(存储映射,例如5291658276538691055=ABCDEF)显然只有当你有一组离散的数字时才有用。
包括附加字符(例如小写+数字)。

10-06 04:31