java十进制与任意进制之间转换
import java.util.HashMap; import java.util.Map; import java.util.Stack; public class HexTransformatUtil { /** * 将十进制转换为任意进制值 * @param digths 转换后的进制最小位上,依次出现的字符值,比如26进制"ABCDEFGHIJKLMNOPQRSTUVWXYZ" * @param num 将被转换的十进制值 * @param length 转换到指定字符串后,如果不足length长度位,自动补足最小值,比如26进制"ABCDEFGHIJKLMNOPQRSTUVWXYZ"将在最前补"a" * @return */ public static String hex10ToAnly(String digths, int num,int length){ StringBuffer str = new StringBuffer(""); int base = digths.trim().length(); if(0==num){ str.append(digths.charAt(0)); }else{ Stack<Character> s = new Stack<Character>(); while(num != 0){ s.push(digths.charAt(num%base)); num/=base; } while(!s.isEmpty()){ str.append(s.pop()); } } String prefix = ""; String suffix = str.toString(); if(length>suffix.length()){ for(int count = 0;count<length-suffix.length();count++){ prefix = prefix + digths.charAt(0); } } return prefix + suffix; } /** * 将任意进制转换为十进制值 * @param digths 转换前的进制最小位上,依次出现的字符值,比如26进制"ABCDEFGHIJKLMNOPQRSTUVWXYZ" * @param hexValue 转换前的进制字符串值 * @return */ public static int hexAnlyTo10(String digths, String hexValue){ if(null==hexValue||"".equals(hexValue.trim())) return 0; int base = digths.trim().length(); Map<String,Integer> digthMap = new HashMap<String,Integer>(); int count=0; for(char item : digths.trim().toCharArray()){ digthMap.put(""+item, count); count++; } String str = new StringBuffer(hexValue.trim()).reverse().toString(); int sum = 0; for(int index = 0;index<str.length();index++){ sum = new Double(Math.pow(base, index)).intValue() * digthMap.get(""+str.charAt(index)) +sum; } return sum; } public static void main(String[] args) { //将十进制"0123456789"值55转换为26进制“ABCDEFGHIJKLMNOPQRSTUVWXYZ”对应的值,不需要格式化最后输出字符串 System.out.println(hex10ToAnly("ABCDEFGHIJKLMNOPQRSTUVWXYZ", 55, 0)); //将26进制“ABCDEFGHIJKLMNOPQRSTUVWXYZ”字符串值“CD”转换为十进制"0123456789"值55对应的值,不需要格式化最后输出字符串 System.out.println(hexAnlyTo10("ABCDEFGHIJKLMNOPQRSTUVWXYZ", "CD" )); } }
相关推荐
进制转换 进制转换器,2进制十进制八进制十六进制之间任意转换
任意进制整数的转换,用十进制数作为中转,原则上不能超过10进制数能表示的最大整数。
任意进制数之间的转化,使用栈的来实现,先转化为十进制数,然后目标进制数。
任意输入一个十进制整数,包括正数负数,通过程序实现可以输出相应的二进制编码
此程序是用栈来完成进制的转换,有栈的结构体的构造,该程序是用将十进制任意转换成其他进制,但只限于整数
原创软件,MFC界面,可以任意转换64bit数据到2进制、10进制、16进制,2进制可以直接查看任意bit,取0~63之间的任意区间值,并且支持取位、移位大小端转换等等,尤其适合做嵌入式开发的相关人员使用。真正做到了简单...
二 八 十 十六进制间的任意转换 二 八 十 十六进制间的任意转换 二 八 十 十六进制间的任意转换
对于输入的任意一个非负十进制整数,打印输出与其等值的八进制数。java代码实现源码。
NULL 博文链接:https://mactavish.iteye.com/blog/1731735
JAVA开发,支持任意进制数转,换二进制、八、十、十六进制转换!支持窗口最前显示! 在校期间JAVA开发小软件!
java swing 实现2-16之间的任意进制的转换
格雷码(循环碼)是任意两个相邻数的代码只有一位二进制数不同的BCD码,它与奇偶校验码同属可靠性编码。 格雷碼(Gray code)是由貝爾實驗室的Frank Gray在1940年提出,...此JAVA程序就是将将十进制数字转换为格雷码。
java代码-任意给出一个十进制整数,将十进制整数转换为二进制数。
java代码-2.任意给出一个十进制整数,将十进制整数转换为二进制数。
java代码-求任意给出一个十进制整数,将十进制整数转换为二进制数。
java代码-任意给出一个十进制整数,将十进制整数转换为二进制数