import java.util.HashMap;/*** 36进制与10进制转换思路:*      一、创建HashMap类型对象用于存放数字'0'到字母'Z'36个字符值键对*      二、* @author Administrator**/
public class Ten2Thirty {//定义36进制数字private static final String X36 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";//拿到36进制转换10进制的值键对private static HashMap<Character, Integer> thirysixToTen = createMapThirtysixToTen();//拿到10进制转换36进制的值键对private static HashMap<Integer,Character> tenToThirtysix = createMapTenToThirtysix();//定义静态进制数private static int BASE = 36;//用来存放10转36进制的字符串private static StringBuffer sb = new StringBuffer();private static HashMap<Character, Integer> createMapThirtysixToTen() {HashMap<Character, Integer> map = new HashMap<Character, Integer>();for (int i = 0; i < X36.length(); i++) {//0--0,... ..., Z -- 35的对应存放进去map.put(X36.charAt(i), i);}return map;}private static HashMap<Integer, Character> createMapTenToThirtysix() {HashMap<Integer, Character> map = new HashMap<Integer,Character>();for (int i = 0; i < X36.length(); i ++) {//0--0,... ..., 35 -- Z的对应存放进去map.put(i, X36.charAt(i));}return map;}/** 36 to 10* @param pStr 36进制字符串* @return  十进制*/public static int ThirtysixToDeciaml(String pStr) {if (pStr == "") return 0;//目标十进制数初始化为0int deciaml = 0;//记录次方,初始为36进制长度 -1int power = pStr.length() - 1;//将36进制字符串转换成char[]char[] keys = pStr.toCharArray();for (int i = 0; i < pStr.length(); i++) {//拿到36进制对应的10进制数int value = thirysixToTen.get(keys[i]);deciaml = (int) (deciaml + value*Math.pow(BASE, power));//执行完毕 次方自减power --;}return deciaml;}/**10 to 36* @param iSrc  10进制整数值* @param pRet  将iSrc转换成36进制以后的字符串* @return  0成功,其他失败*/public static int DeciamlToThirtySix(int iSrc, String pRet) {String str = DeciamlToThirtySix(iSrc);if (str.equals(pRet)) {return 0;} else {return 1;}}/*** 用递归来实现10 to 36* @param iSrc* @return*/public static String DeciamlToThirtySix(int iSrc) {//循环控制boolean flag = true;//定义键int key;//定义值int value;while (flag) {key = iSrc / BASE;value = iSrc - key*BASE;if (key == 0) {flag = false;sb.append(tenToThirtysix.get(value).toString());} else if (key != 0) {//如果value小于进制36,说明下次递归会执行上面的语句//而这次的循环还没有终止,所以要讲循环控制设置为false;if (value < BASE) flag = false;sb.append(tenToThirtysix.get(key).toString());DeciamlToThirtySix(value);}}return sb.toString();}public static void main(String[] args) {int x = ThirtysixToDeciaml("2S");String s = DeciamlToThirtySix(100);System.out.println(s);}
}

36进制与10进制之间的转换相关推荐

  1. php 64进制转16进制,PHP进制转换[实现2、8、16、36、64进制至10进制相互转换]

    $mtime1= explode(" ", microtime()); $startTime= $mtime1[0] + $mtime1[1];?> 进制转换 2 8 10 ...

  2. 进制转换问题---例如把26进制转为10进制

    问题:a-z表示0-25,代表26进制,现在要求把该26进制转为10进制   例如: 输入:ba 输出:26 先看如何把十六进制怎么转换成十进制 它可以表示为:2*10^3+0*10^2+3*10^1 ...

  3. python16进制转10进制_python 字节串及10进制,16进制相关转换

    进行协议解析时,总是会遇到各种各样的数据转换的问题,从二进制到十进制,从字节串到整数等等 整数之间的进制转换: 10进制转16进制: hex(16) ==> 0x10 16进制转10进制: in ...

  4. 关于物联网的各种转换,16进制 二进制 10进制 效验总结

    字符串插入字符 /// <summary>/// 每隔n个字符插入一个字符/// </summary>/// <param name="input"& ...

  5. 进制转换 2进制转10进制 10进制转2进制

    觉得有用的,HXD们请点个赞●▽● 10进制转2进制(以十进制100转换为二进制为例子:) 方法一(除2取余数,倒叙摆列,高位补零 ) 100/2=50余0: 50/2=25余0: 25/2=12余1 ...

  6. 16进制与10进制互转,16进制转10进制,10进制转16进制

    近期在调试单片机时需要观看端口数据,需要将16进制数据转化成10进制数据.在网上找了蛮多都只能实现单个数据的转化,于是便用PYTHON编写了一份. import tkinter as tk root= ...

  7. python十六进制转十进制_使用Python 16进制转10进制

    原博文 2019-05-07 15:22 − """ 16进制转10进制 """ # str="A5 42 D2 00 4A 00 ...

  8. 2、Py进制转换:荣耀机试题,任意2-64进制转10进制(自定义函数转换)

    本文不直接解题,只解决其中核心部分:任意2-64进制数转10进制数 一.题目 原题: 小明最近在学bash语言,发现Bash算术运算相比于C/pvthon等其他语言有一个特性,是其中常量表示规则: 1 ...

  9. python 16进制转10进制, 8进制转10进制, 2进制转10进制的方法

    python 16进制转10 进制, 8进制转10进制, 2进制转10进制 可以使用系统自带的 int 方法 具体如下: value = "0x1388" result = int ...

最新文章

  1. 特征工程在实际业务中的应用!
  2. iOS UI 12 block传值
  3. XX公司珠宝进销分销系统设计
  4. struts2中拦截器和过滤器的比较
  5. 转: 微博的多机房部署的实践(from infoq)
  6. java 3%3_Java 代码界 3% 的王者?看我是如何解错这 5 道题的
  7. android中搭建NDK环境及使用JNI技术
  8. linux系统连接实验室服务器步骤详解
  9. 航班预定系统java源代码_飞机订票系统源代码(Java)
  10. HTML5 通过Vedio标签实现视频循环播放
  11. 网络模型|分割模型|Vnet
  12. 分享美容护肤门店预约下单小程序开发制作功能介绍
  13. LIBOR-OIS息差利率 伦敦银行同业拆息与隔夜指数掉期
  14. Python机器学习|广义线性模型(2) | 最小二乘法
  15. matlab求解一元四次函数,excel数据函数参数是四个吗|求一个简单的一元四次函数的最大值...
  16. html图片隐藏文字,怎样用CSS隐藏图片背景的文字内容
  17. 电脑桌面计算机打开很慢,电脑桌面刷新反应很慢怎么办?电脑桌面刷新很慢解决方法...
  18. 微博、腾讯视频(部分)提取器-- 前端Vue.js篇
  19. 【读书笔记】《结构思考力》——李忠秋
  20. 科技大佬的那些情史!

热门文章

  1. 1696: [Usaco2007 Feb]Building A New Barn新牛舍
  2. 十六进制颜色代码对照表
  3. Apple Developer 注册(转)
  4. 基于php企业员工培训管理系统
  5. 超级计算机summit存储容量,美国研制世界最强超级计算机Summit,超过神威.太湖...
  6. Lumia手机电池充电方法
  7. 流形优化: Manifold Optimization 的 全网最通俗版本详解 (一)
  8. 开关三极管的使用误区
  9. 宝塔面板使用同一个IP不同端口创建不同的网站,解决:“您添加的站点已存在”的问题
  10. 多普达A6388刷机2.3