部分代码来源开源网友,笔记,侵删
//字符顺序可以乱的,但是由于三位0补全的关系,第一个index必须是'0', private static char[]cs = new char[]{'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','0','1','2','3','4','5','6','7','8','9'}; private static String to62(long num10) { Stack<Character> stack = new Stack<Character>(); StringBuffer r = new StringBuffer(0); if (num10!=0) { long quotient = num10; while (quotient!=0) { long mod = quotient%62; int index = new Long(mod).intValue(); char c = cs[index]; stack.add(c); quotient=quotient/62; } }else { stack.add(cs[0]); } while (!stack.isEmpty()) { r.append(stack.pop()); } return r.toString(); } private static int get10(char c) { for (int i = 0; i < cs.length; i++) { if (c == cs[i]) { return i; } } return -1; } private static long to10(String num62) { char[] arr = num62.toCharArray(); int len = arr.length; long sum = 0; for (int i = 0; i < len; i++) { int a = get10(arr[i]); if (a == -1) { return -1; } double b = Math.pow(62, len - 1 - i); long c = new Double(b).longValue(); sum += c * a; } return sum; } private static String fillZero(String s){ int size = s.length(); int dis = 3-size; for (int i = 0; i < dis; i++) { s="0"+s; } return s; } private static String removeZero(String s){ char[]cs = s.toCharArray(); StringBuffer r = new StringBuffer(0); boolean bool = true;//是0 for (char c : cs) { if (bool) { if (c=='0') { continue; }else { r.append(c); bool=false; } }else { r.append(c); } } String u = r.toString(); if (u.equals("")) { u="0"; } return u; } /** * 加密 * @param text * @return */ public static String enc(String text){ StringBuffer sb = new StringBuffer(0); char[]cs = text.toCharArray(); for (char c : cs) { int b = (int)c; String d = to62(b); String a = fillZero(d); sb.append(a); } return sb.toString(); } /** * 解密 * @param text * @return */ public static String dec(String text){ char[]arr = text.toCharArray(); StringBuffer r = new StringBuffer(0); StringBuffer temp = new StringBuffer(0); for (int i = 0; i < arr.length; i++) { if ((i+1)%3==0) { temp.append(arr[i]); String a = temp.toString(); char cc = (char)to10(removeZero(a)); r.append(cc); temp.setLength(0); }else { temp.append(arr[i]); } } return r.toString(); }
相关推荐
2~62进制转换器 支持整数 小数转换 非常好用的小工具
教你如何62进制转成10进制
本文将深入探讨这个主题,结合"大整数任意进制转换(2-62进制)"的软件特点,解析其中涉及的关键知识点。 首先,我们来理解什么是“大整数”。在常规计算中,我们通常使用十进制系统,可以轻松表示和处理较小的整数。...
此文件为进制转换工具类,用于10进制和62进制互转,帮助大家解决问题
2-62进制转换器.rar
易语言2-62进制转换器是一款编程工具,主要用于进行数字的二进制到62进制之间的转换。在计算机科学中,进制转换是一个基础且重要的概念,它涉及了不同数值系统间的转化,这对于理解和处理二进制、八进制、十进制和...
`fN10ToC62()`函数负责将10进制的数字转换为62进制,而`fTime62()`函数则用于将表示当前时间的数据从10进制转换为62进制。 `fN10ToC62()`函数根据输入的10进制数字返回相应的62进制字符。它首先检查数字的范围,并...
在这个"易语言2-62进制转换器源码"资源中,我们可以看到一个利用易语言开发的工具,该工具能够进行2到62进制之间的转换。 在计算机科学中,二进制(Binary)是最基本的数字系统,用于表示数据和指令。我们常见的十...
2-62进制转换器是一种工具,它能够帮助用户将数字从二进制(base-2)形式转换为其他进制,甚至包括非标准的62进制(base-62)。这种转换在计算机科学、网络编码、加密算法和数据表示等多个领域都有应用。 二进制是...
### 使用C++实现62进制加减乘除法运算的计算器 #### 一、引言 在计算机科学中,通常我们使用的数制是十进制。然而,在某些特定的应用场景下,比如密码学或者数据编码领域,可能会涉及到非传统的进制系统。本篇文章...
本软件“62任意数进制转换”提供了一种独特的方式,允许用户进行62进制以内的任意数转换。以下将详细阐述进制转换的基本概念、进制数的特点以及如何实现任意进制转换。 首先,进制是基于特定基数的数系,每个位置的...
它接受一个十进制整数,不断地将其除以62并取余,余数对应于62进制字符表中的字符,然后将这些字符拼接成新的62进制字符串。这个过程持续到原始的十进制数除以62得到的结果为0。例如,调用`from10to62(5896401674)`...
本节主要讲解的是如何在JavaScript中实现10进制和62进制之间的相互转换。 首先,我们需要了解进制的概念。进制即基数计数法,或称位权计数法,是数字的一种表示方法。在使用进制时,人们可以根据需要选择不同的基数...
c语言输出10进制数转换62进制数代码
Android Studio62进制计算器
c语言如何实现62进制转换成10进制的程序代码
Python输出62进制4位数秩序代码正确版
Python输出62进制3位数秩序代码正确版
安卓c++输出62进制四则运算运算计算器程序代码