JAVA10进制数转45进制
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进制的更多相关文章
- ACM 求全排列(字典序、邻位对换、递增进位制数,递减进位制数)
字典序:(联合康托展开就也可以按照中介数求) 邻位对换.递增进位制数,递减进位制数:具体的实现和算法讲解如下: 代码..C++版的实现并不好..因为是挨个向后找的,如果K很大的时候会超时,不过...思 ...
- MFC 编辑框输入16进制字符串转换为16进制数或者10进制数据计算
1.编辑框添加变量,并选择变量类型为CString. 2. 使用“_tcstoul”函数将Cstring 类型转换为16进制/10进制数进行计算.
- Java中8进制数和16进制数的表示方法
由于数据在计算机中的表示,最终以二进制的形式存在,所以有时候使用二进制,可以更直观地解决问题. 但,二进制数太长了.比如int 类型占用4个字节,32位.比如100,用int类型的二进制数表达将 ...
- 1813. M进制数问题
1813. M进制数问题 Constraints Time Limit: 1 secs, Memory Limit: 32 MB Description 试用 C++的类来表示一般进制数. 给定 2 ...
- C#版 - Leetcode 504. 七进制数 - 题解
C#版 - Leetcode 504. 七进制数 - 题解 Leetcode 504. Base 7 在线提交: https://leetcode.com/problems/base-7/ 题目描述 ...
- 一个小公式帮你轻松将IP地址从10进制转到2进制
网络工程师经常会遇到的一个职业问题:如何分配IP,通过子网如何捕捉某一网段或某台机器?他们甚至能够进行精准的分析和复杂的开发......凡此种种,其实与一些他们头脑中根深蒂固的常识性理论存有某种内在的 ...
- C/C++ 各种进制的表示方法/ 进制前缀
C/C++ 各种进制的表示方法/ 进制前缀 来源 https://blog.csdn.net/qq_38282836/article/details/81784112 在C/C++ 中天然的支持除10 ...
- C++中,将单精度浮点数转换成2进制数
在C++里,实数(float)是用四个字节即三十二位二进制位来存储的.其中有1位符号位,8位指数位和23位有效数字位.实际上有效数字位是24位,因为第一位有效数字总是"1",不必存 ...
- [转]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 ...
- 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 ...
随机推荐
- MySQL基础之DDL语句
讲解SQL语句三大分类和每个分类的SQL使用入门. 使用的是数据库是:MySQL 8.0.27 1.SQL分类 DDL(Data Definition Language)语句:数据定义语句. 用途 ...
- 【Unity3D】场景切换、全屏_恢复切换、退出游戏、截屏
1 前言 1)场景切换 场景切换可以使用 SceneManager 的 LoadScene 和 LoadSceneAsync 方法,如下: public static void LoadSce ...
- 【framework】ATMS启动流程
1 前言 ATMS 即 ActivityTaskManagerService,用于管理 Activity 及其容器(任务.堆栈.显示等).ATMS 在 Android 10 中才出现,由原来的 A ...
- col命令
col命令 在很多UNIX说明文件里,都有RLF控制字符,当我们把说明文件的内容输出成纯文本文件时,控制字符会变成乱码,col命令则能有效滤除这些控制字符. 语法 col [options] 参数 - ...
- Vue中虚拟DOM的理解
Vue中虚拟DOM的理解 Virtual DOM是一棵以JavaScript对象作为基础的树,每一个节点称为VNode,用对象属性来描述节点,实际上它是一层对真实DOM的抽象,最终可以通过渲染操作使这 ...
- Java利用反射实现运行时方法调用
1.介绍 在这篇短文中,我们将快速了解如何在运行时使用Java反射API调用方法. 2.准备工作 来创建一个简单的类: public class Operations { public double ...
- Java并发编程实例--19.在一个锁中使用多个条件
一个锁可能关联了一个或多个条件.这些条件可以在Condition接口中声名. 使用这些条件的目的是去控制一个锁并且可以检查一个条件是true或false,如果为false,则暂停直到 另一个线程来唤醒 ...
- String - 一些测试(持续更新)
void main() { char *buffer = new char(1000); memset(buffer, 0, 1000); char buffer1[1000] = {}; buffe ...
- gin框架中的c.Next()/c.Abort()
package main import ( "fmt" "github.com/gin-gonic/gin" ) func func1(c *gin.Conte ...
- 【LeetCode二叉树#15】二叉搜索树中的众数(递归中序遍历)
二叉搜索树中的众数 力扣题目链接(opens new window) 给定一个有相同值的二叉搜索树(BST),找出 BST 中的所有众数(出现频率最高的元素). 假定 BST 有如下定义: 结点左子树 ...