62之内的进制任意转换。代码很好用,比如1)用于生成000,001,002...00a...00A...ZZZ类似的序列;2)将10进制字符串转成62进制,压缩字符串长度;3)62进制(a-zA-Z0-9)在短地址有作用

转自https://github.com/shenzhe/zoeey/blob/master/src/main/java/org/zoeey/util/NumberHelper.java

/** MoXie (SysTem128@GMail.Com) 2009-8-11 11:59:20* * Copyright © 2008-2010 Zoeey.Org* Code license: GNU Lesser General Public License Version 3* http://www.gnu.org/licenses/lgpl-3.0.txt*/
package org.zoeey.util;/*** 数字辅助工具<br />六十二进制内的数字互转(seo:62进制内的数字互转)* @author MoXie*/
public class NumberHelper {/*** 支持的最小进制*/public static int MIN_RADIX = 2;/*** 支持的最大进制*/public static int MAX_RADIX = 62;/*** 锁定创建*/private NumberHelper() {}/*** 0-9a-zA-Z表示62进制内的 0到61。*/private static final String num62 = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";/*** 返回一字符串,包含 number 以 toRadix 进制的表示。<br />* number 本身的进制由 fromRadix 指定。fromRadix 和 toRadix 都只能在 2 和 62 之间(包括 2 和 62)。<br />* 高于十进制的数字用字母 a-zA-Z 表示,例如 a 表示 10,b 表示 11 以及 Z 表示 62。<br />* @param number    需要转换的数字* @param fromRadix     输入进制* @param toRadix       输出进制* @return  指定输出进制的数字*/public static String baseConver(String number, int fromRadix, int toRadix) {long dec = any2Dec(number, fromRadix);return dec2Any(dec, toRadix);}/*** 返回一字符串,包含 十进制 number 以 radix 进制的表示。* @param dec       需要转换的数字* @param toRadix    输出进制。当不在转换范围内时,此参数会被设定为 2,以便及时发现。* @return    指定输出进制的数字*/public static String dec2Any(long dec, int toRadix) {if (toRadix < MIN_RADIX || toRadix > MAX_RADIX) {toRadix = 2;}if (toRadix == 10) {return String.valueOf(dec);}// -Long.MIN_VALUE 转换为 2 进制时长度为65char[] buf = new char[65]; // int charPos = 64;boolean isNegative = (dec < 0);if (!isNegative) {dec = -dec;}while (dec <= -toRadix) {buf[charPos--] = num62.charAt((int) (-(dec % toRadix)));dec = dec / toRadix;}buf[charPos] = num62.charAt((int) (-dec));if (isNegative) {buf[--charPos] = '-';}return new String(buf, charPos, (65 - charPos));}/*** 返回一字符串,包含 number 以 10 进制的表示。<br />* fromBase 只能在 2 和 62 之间(包括 2 和 62)。* @param number    输入数字* @param fromRadix    输入进制* @return  十进制数字*/public static long any2Dec(String number, int fromRadix) {long dec = 0;long digitValue = 0;int len = number.length() - 1;for (int t = 0; t <= len; t++) {digitValue = num62.indexOf(number.charAt(t));dec = dec * fromRadix + digitValue;}return dec;}
}

62之内的进制任意转换相关推荐

  1. 使用链栈来对十进制数进行任意进制的转换

    使用辗转相除法,通过链栈来实现一个十进制数字对任意进制的一个转换,提前声明,这里不包括一进制和零进制的转换. #include"stdio.h" #include<stdli ...

  2. 任意进制的转换(C,C++)itoa函数,strtol函数,bitset函数,oct函数,dec函数,hex函数

    十进制转换为(2-10)进制代码方法 #include<stdio.h> int main() {int a,b,count=0,i;scanf("%d%d",& ...

  3. 计算机进制的转换(任意进制)详解

    进制的转换总是觉得很乱,不知道怎么去系统的去记住,今天我就用最简单的方法,将计算机进制的转换讲解明白. 一.任意进制转十进制 任意进制转十进制,我们采用的是按权展开法 任意进制转十进制,只需要修改底数 ...

  4. c++将小数化为二进制_C++实现任意进制之间转换

    进制也就是进位计数制,是一种记数方式.利用这种记数法,可以使用有限种数字符号来表示所有的数值. 一种进位制中可以使用的数字符号的数目称为这种进位制的基数或底数.若一个进位制的基数为n,即可称之为n进位 ...

  5. # 将微博地址里面的62进制字符串转换成10进制的16位数字mid

    # 将微博地址里面的62进制字符串转换成10进制的16位数字middef base62_decode(string):alphabet = "0123456789abcdefghijklmn ...

  6. php 各种进制表示,php各种进制的转换

    php各种进制的转换 最近在做一个关于颜色的转换,需要把十六进制转换为十进制,特在网上收了一个各种进制的转换,现共享如下: 一,十进制(decimal system)转换函数说明 1,十进制转二进制 ...

  7. JAVA中的进制以及转换

    进制介绍 进制就是人为指定的进位制,X进制就是逢X进一 我们最常见的进制就是十进制,当然,在计算机中最常见的就是二进制,除此之外,还有八进制.十六进制等. 首先我们就要了解一下这些进制的组成成分: 二 ...

  8. linux系统计算器工具,Linux工具之bc计算器进制的转换

    bc是Linux下的命令行式的计算器. 题目虽然叫任意进制,但是因为bc的限制,输入进制是216范围:输出进制是2999范围.这与常见计算器的进制范围是一致的,比如windows计算器最高也只能处理1 ...

  9. java中的进制输出转换_Java I/O : Java中的进制详解

    作者:李强强 上一篇,泥瓦匠基础地讲了下Java I/O : Bit Operation 位运算.这一讲,泥瓦匠带你走进Java中的进制详解. 一.引子 在Java世界里,99%的工作都是处理这高层. ...

最新文章

  1. 1003 Emergency(Dijkstra,Bellman-Ford,SPFA三种解法)
  2. 【对讲机的那点事】带你玩转灵通LT33公网集群对讲机
  3. Python——线程1
  4. linux 之 rpm 网站
  5. Spring Cloud Feign 使用Apache的HTTP Client替换Feign原生httpclient
  6. Spring3国际化和本地化
  7. pageContext对象
  8. iphone照片永久删除怎么恢复_微信数据怎么永久删除不被恢复?只删除聊天记录没用,打开这里彻底删除!...
  9. Hack_All_The_Things——探索IoT相关的攻击研究和渗透测试
  10. chainmaker 区块链配置文件位置 版本号
  11. 用 JAVA 编写一个 M3U8 视频下载器
  12. 公众号粉丝迁移需要多长时间?
  13. 【股票】成交量VOL隐含的交易秘密
  14. 【渝粤题库】陕西师范大学202141规制经济学 作业(高起专)
  15. 中文代码示例视频演示Python入门教程第五章 数据结构
  16. 克服J2SE 1.3 ~ 1.4不兼容问题
  17. python深浅拷贝应用_简述Python的深浅拷贝以及应用场景?
  18. 一些计算机模拟人脑项目
  19. 软著申请材料,软著申请文件,软著登记材料,软著登记文件
  20. iOS 视频播放之MPMoviePlayerController

热门文章

  1. 抠图在线操作的方法有哪些?这些方法快收下
  2. GCPC2015 F Divisions (约数个数定理)
  3. 哪些地区容易受到地震威胁?地震图告诉你答案
  4. 好东东--找到的极品
  5. 【51nod 3241】【堆】小明和他的同学们
  6. 继续教育-计算机会计答案,2020广西会计继续教育考试试题及答案-判断题
  7. 关于计算机的多媒体论文题目,关于计算机多媒体专业的论文选题 计算机多媒体专业论文题目选什么比较好...
  8. CentOS 7.6 部署squid代理服务器
  9. 软考-嵌入式系统设计师-笔记:嵌入式系统的安全性知识
  10. 关于高云FPGA的学习笔记