import java.util.HashMap;

public class test2 {

    // 定义45进制数字
private static final String X45 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./: ";
// 拿到45进制转换10进制的值键对
private static HashMap<Character, Integer> _45To10 = createMap45To10();
// 拿到10进制转换45进制的值键对
private static HashMap<Integer, Character> _10To45 = createMap10To45();
// 定义静态进制数
private static int BASE = 45; private static HashMap<Character, Integer> createMap45To10() {
HashMap<Character, Integer> map = new HashMap<Character, Integer>();
for (int i = 0; i < X45.length(); i++) {
map.put(X45.charAt(i), i);
}
return map;
} private static HashMap<Integer, Character> createMap10To45() {
HashMap<Integer, Character> map = new HashMap<Integer, Character>();
for (int i = 0; i < X45.length(); i++) {
map.put(i, X45.charAt(i));
}
return map;
} /**
* 10 to 45
*
* @param iSrc
* @return
*/
public static String _10To45(int iSrc) {
String result = "";
int key;
int value;
key = iSrc / BASE;
value = iSrc - key * BASE;
if (key != 0) {
result = result + _10To45(key);
}
result = result + _10To45.get(value).toString();
return result;
} /**
* 45 to 10
*
* @param pStr 45进制字符串
* @return 十进制
*/
public static int _45To10(String pStr) {
if (pStr == "")
return 0;
// 目标十进制数初始化为0
int deciaml = 0;
// 记录次方,初始为45进制长度 -1
int power = pStr.length() - 1;
// 将45进制字符串转换成char[]
char[] keys = pStr.toCharArray();
for (int i = 0; i < pStr.length(); i++) {
// 拿到45进制对应的10进制数
int value = _45To10.get(keys[i]);
deciaml = (int) (deciaml + value * Math.pow(BASE, power));
// 执行完毕 次方自减
power--;
}
return deciaml;
} public static void main(String[] args) { int x = _45To10("AAA");
System.out.println(x);
//String binStr = Integer.toBinaryString(x);
//System.out.println(binStr);
//System.out.println(Integer.parseInt(binStr, 2)); String s = _10To45(11);
System.out.println(s); } }

输出:

20710
B

JAVA10进制数转45进制的更多相关文章

  1. ACM 求全排列(字典序、邻位对换、递增进位制数,递减进位制数)

    字典序:(联合康托展开就也可以按照中介数求) 邻位对换.递增进位制数,递减进位制数:具体的实现和算法讲解如下: 代码..C++版的实现并不好..因为是挨个向后找的,如果K很大的时候会超时,不过...思 ...

  2. MFC 编辑框输入16进制字符串转换为16进制数或者10进制数据计算

    1.编辑框添加变量,并选择变量类型为CString. 2.  使用“_tcstoul”函数将Cstring 类型转换为16进制/10进制数进行计算.

  3. Java中8进制数和16进制数的表示方法

    由于数据在计算机中的表示,最终以二进制的形式存在,所以有时候使用二进制,可以更直观地解决问题.  但,二进制数太长了.比如int   类型占用4个字节,32位.比如100,用int类型的二进制数表达将 ...

  4. 1813. M进制数问题

    1813. M进制数问题 Constraints Time Limit: 1 secs, Memory Limit: 32 MB Description 试用 C++的类来表示一般进制数. 给定 2 ...

  5. C#版 - Leetcode 504. 七进制数 - 题解

    C#版 - Leetcode 504. 七进制数 - 题解 Leetcode 504. Base 7 在线提交: https://leetcode.com/problems/base-7/ 题目描述 ...

  6. 一个小公式帮你轻松将IP地址从10进制转到2进制

    网络工程师经常会遇到的一个职业问题:如何分配IP,通过子网如何捕捉某一网段或某台机器?他们甚至能够进行精准的分析和复杂的开发......凡此种种,其实与一些他们头脑中根深蒂固的常识性理论存有某种内在的 ...

  7. C/C++ 各种进制的表示方法/ 进制前缀

    C/C++ 各种进制的表示方法/ 进制前缀 来源 https://blog.csdn.net/qq_38282836/article/details/81784112 在C/C++ 中天然的支持除10 ...

  8. C++中,将单精度浮点数转换成2进制数

    在C++里,实数(float)是用四个字节即三十二位二进制位来存储的.其中有1位符号位,8位指数位和23位有效数字位.实际上有效数字位是24位,因为第一位有效数字总是"1",不必存 ...

  9. [转]as3 算法实例【输出1 到最大的N 位数 题目:输入数字n,按顺序输出从1 最大的n 位10 进制数。比如输入3,则输出1、2、3 一直到最大的3 位数即999。】

    思路:如果我们在数字前面补0的话,就会发现n位所有10进制数其实就是n个从0到9的全排列.也就是说,我们把数字的每一位都从0到9排列一遍,就得到了所有的10进制数. /** *ch 存放数字 *n n ...

  10. CF459C Pashmak and Buses (构造d位k进制数

    C - Pashmak and Buses Codeforces Round #261 (Div. 2) C. Pashmak and Buses time limit per test 1 seco ...

随机推荐

  1. Ubuntu20.04/22.04 ESP32 命令行开发环境配置

    ESP32 芯片系列 ESP32分三个系列 ESP32-S ESP32-S3: Xtensa 32位 LX7 双核 240 MHz, 384KB ROM, 512KB SRAM, QFN7x7, 56 ...

  2. Python 虚拟环境 virtualenv 笔记

    初始化 virtualenv 方式一: virtualenv 安装 virtualenv, 不用sudo的话, 是安装到用户home目录下 pip install virtualenv # 此时如果 ...

  3. Spring Cloud Gateway微服务网关快速入门

    介绍 Spring Cloud Gateway 是 Spring 官方基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等技术开发的网关,Spring C ...

  4. 【libGDX】加载G3DJ模型

    1 前言 ​ libGDX 提供了自己的 3D 格式模型文件,称为 G3D,包含 g3dj(Json 格式)和 g3db(Binary 格式)文件,官方介绍见 → importing-blender- ...

  5. OsgEarth开发笔记(二):Osg3.6.3+OsgEarth3.1+vs2019x64开发环境搭建(中)

    上一篇:<OsgEarth开发笔记(一):Osg3.6.3+OsgEarth3.1+vs2019x64开发环境搭建(上)>下一篇:敬请期待-   前言  上一篇编译了osg和osgCurl ...

  6. tox包

    官方文档 https://tox.readthedocs.io/en/latest/example/basic.html 官方提供的一个简单的tox.ini/默认环境 [tox] envlist = ...

  7. 【LeetCode动态规划#03】整数拆分(数学题)

    整数拆分 力扣题目链接(opens new window) 给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化. 返回你可以获得的最大乘积. 示例 1: 输入: 2 输出: 1 ...

  8. 【Azure 服务总线】查看Service Bus中消息多次发送的日志信息,消息是否被重复消费

    问题描述 使用Service Bus,发现消息被重复消费.如果要查看某一条消息的具体消费情况,需要那些消息的属性呢? 问题解答 使用Azure Service Bus,当消费发送到服务端后,就会生产相 ...

  9. 【Azure 应用服务】收集App Service 关于Availability Zone, Health check 以及 Traffic Manager的文档,并了解高可用(HA)和灾备(DR)

    问题描述 收集App Service 关于Availability Zone, Health check 以及 Traffic Manager的文档,并了解高可用(HA)和灾备(DR)的具体办法 问题 ...

  10. 协程的async使用

    async与launch一样都是开启一个协程,但是async会返回一个Deferred对象,该Deferred也是一个job async函数类似于 launch函数.它启动了一个单独的协程,这是一个轻 ...