http://tool.oschina.net/hexconvert/
http://www.kwuntung.net/hkunit/base/base.php
网上两个在线进制转换工具,然后我用博客园部分人测试了下结果都不准确,从10进制
999999999999999999(18个9)转成36进制 为:7lieexzx4kws
但是 7lieexzx4kws 转成10进制 却结果不是 18个9了,分别为:1000000000000000000,
999999999999999842 也请一并解惑
进制转换的参数应该使用 Int64 或者long ,大部分都是int。。
经过三个在线进制转换工具的测试发现,10进制的数不能超过15位,否则由36进制转回10进制的时候就不是原来的10进制数了;
测试数据使用的是:
10进制:999999999999...(16个9) =》36进制:rcn1hssighs
36进制: rcn1hssighs=》10进制:100000000000000000
那么疑问是10进制的有效最大数字就是15个9了么
1.如果用long的话就要判断最大值.如果不限制大小就要用字符串
2.如果转来再转去却不一样了.那就是算法有问题.没什么好解释的
但在线转换工具上转换9999...(18个9)转成36进制,再转回10进制都是不一样,难道每个在线工具都不对?,请教有没具体算法实现呢
第三个个在线工具:http://www.atool.org/hexconvert.php
建议自己写个进制转换的算法就行了。
自己写的转换是对的 但和在线工具的16位以后转换结果不太一样。。。
@十四: 那就自己笔算验证下,看是你的对还是在线工具对吧,在线工具也不一定对的,就像你说的长度太大的在线工具可能没考虑到,这时你可以根据自己的需求是要用字符串类型的去转换还是换个精度更高的进行处理了。