在Cobol工作并且有一个18位数字我需要转换成10个字母数字BASE36(15位)。它可能在BASE 80中,但我只有10个字节可用大写...为了减少18位数,我可以使用000000001和9999999999之间的另一个已知数字(它是10位数的帐号,最后是模数ciffer)所以我离开时基本没有压缩任何想法?我必须转换回原来的号码......
答案 0 :(得分:1)
你不能。 36 10 远小于10 19 (或10 18 ,它是什么?),因此无法代表所有19或基数为10的18位数字,基数为36的10位数字。
答案 1 :(得分:0)
这是在黑暗中拍摄的。您可能知道这一点,但这里是基于10转换公式的基础。假设我的简单原因是你有45678号。从右侧数字的值开始。将它添加到数字左边* base,增加基本功率:
8+(7*36)+(6*36*36)+(5*36*36*36)+(4*36*36*36*36) = 6959780 base 10
当然,您可能必须使代码将字符识别为数值。因此,我的简单。