通过十进制转换成高进制来缩短数据长度
因项目需求,需要把一串数字压缩长度传给服务器,然后再从服务器获取出来压缩后的数据,转成正常的数据。
想到往高进制转换,从而达到压缩的目的,项目中也实现了需求,但后来整理压缩代码时发现,一个很大的数转换成高进制后,和在线进制转换工具转换的不一样,但是用下面的方法,十进制转成高进制后,再用高进制把数转换成十进制,还是原来的数没有问题。
十进制转换成 2进制、4进制、8进制、16进制、32进制都是没问题的,
例如:
double param = 1234567890123456789l; 转换35进制就出现了问题
在线工具转换:criyupwhjklx
代码转换: criyupwhjkkx
基本都是后三位出现问题。
不知道为什么十进制转换成有些高进制后和在线工具转换的不一样!!!求解答;
String conversion = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";/*** @param random 把10进制转换成几进制?* @param param 要转换的数据* @return*/private static String int10Torandom(int random,double param) {String[] sz = conversion.split("");String result="";boolean tag=true;while (tag) {if (param > random) {result = sz[(int) (param%random)] + result;param = param/random;} else if (param == random) {result = "01" + result;tag = false;} else {result = sz[(int) param] + result;tag = false;}}return result;}/*** @param random 几进制转换成10进制?* @param param 要转换的数据* @return*/public static double randomTo10(int random,String param) {double result = 0;String[] arr = param.split("");int i = 0;while (i < arr.length) {result = result + (conversion.indexOf(arr[i]) * Math.pow(random, arr.length-i-1));i++;}return result;}
通过十进制转换成高进制来缩短数据长度相关推荐
- 使用递归将十进制转换成任意进制(Number Conversion)
关于递归 什么是递归? 说白了,就是函数自己调用自己,然后被调用的函数继续调用自己,这将无限循环下去,除非代码中有终止调用链的的内容. 解释一下递归的所经历的过程 递归需要有边界条件.递归前进段和递归 ...
- 关于十进制转换成n进制问题的解法
在进行十进制转换成n<10进制问题时,我们通常将需要转换的数字除以n,进而能够得到一个商和余数,然后将余数保留在一个新创造的数组中,通过不断的对商进行除以n,得到新的商和余数,余数再次进行保存, ...
- python实现十进制转换成十六以内任意进制
十进制转换成二进制 十进制转换成二进制,采用的是"除以2求余数"的计算方法,如下所示: "除以2"的过程,得到的余数是从低到高的次序,而需要的带的输出是从高位到 ...
- c语言中如何将字符串转成16进制,用c语言写一个函数把十进制转换成十六进制,该如何处理...
用c语言写一个函数把十进制转换成十六进制 用c语言写一个函数把十进制转换成十六进制 网上找到一些,感觉有占乱 分享到: ------解决方案-------------------- #include ...
- C语言 十进制转换成二进制
/*十进制转换成二进制*/#include<stdio.h>int main(int argc,char argv[]){int num,i;scanf("%d",&a ...
- C语言十进制转换成二进制、八进制、十六进制
一.绪论 十六进制(Hexadecimal):在数学中是一种逢16进1的进位制.一般用数字0到9和字母A到F(或a~f)表示,其中:A~F表示10~15. 十进制(Decimal System):每相 ...
- 蓝桥杯C/C++每日一练之十进制转换成十六进制
第十三届蓝桥杯大赛个人赛省赛比赛将于2022年4月9日(星期六)举办,趁现在寒假的时间抓紧时间备战一下.因为博主本人报名是C/C++组,所以更新所有内容都是C/C++相关知识.题目全部都是蓝桥杯官网题 ...
- 十进制转换任意进制--链栈实现
首先,先了解一下c语言const用法: 修饰局部变量,int const a = 9; const int b = 8;这两种写法是一样的,表示a和b都是常量,不可改变.需要注意的是,用const修饰 ...
- C语言十进制转换成二进制源码
把开发过程比较重要的一些内容备份一次,下边资料是关于C语言十进制转换成二进制的内容,应该对各位朋友有一些用. #include int main() { int num; std::cout < ...
最新文章
- 12个不可不知的Sublime Text应用技巧和诀窍
- 查询数据库表名,数据表信息,MySQL Key值(PRI, UNI, MUL)的含义
- 利用Web Services开发分布式应用
- java list 去空字符串_【JAVA基础】list和字符串判空
- volatile 关键字解析
- 解决eclipse和myeclipse不能编译项目的问题
- Windows编程—控制面板程序显示信息修改(程序图标、名称、链接等)
- 快速配置vs2012+opencv
- bzoj4009: [HNOI2015]接水果
- 51单片机-STC89C52系列学习第一篇之IO口学习
- 女子人身安全防卫指南
- ****怎么解决UBUNTU里面VIM编辑器键盘错乱问题****
- Qt 自定义tablewidget(背景色,标题箭头)
- 计算最高分,最低分,平均分
- 【EARLIER/EARLIEST函数】引用不存在的更早的行上下文 报错解决
- LED大屏实现“人屏”互动的方式有哪些?
- backtrader FAQ:什么是一篮子订单Bracket Orders optMaster
- php spry文本域_Spry是什么?Spry实例用法总结
- Streptavidin-MAL,Maleimide 马来酰亚胺修饰/标记/偶联链霉亲和素
- 技术人员需要了解的手机验证码登录风险