1、二、八、十、十六进制之间的转换

 下面是示例代码,我们直接通过JDK工具库中的方法实现的,如下:

public static Integer valueOf(String s, int radix)

参数为:

  String s要解析的字符串

  int radix解析s字符串的进制

 package com.himi.radix;

 /**
* Java中如何实现十进制到其他进制的转换
* @author hebao
*
*/
public class IntegerToOther { public static void main(String[] args) {
int n = 14;
//十进制转成十六进制:
String n0 = Integer.toHexString(n);
System.out.println("0x"+n0.toUpperCase());
//十进制转成八进制
String n1 = Integer.toOctalString(n);
System.out.println(n1);
//十进制转成二进制
String n2 = Integer.toBinaryString(12);
System.out.println(n2); //十六进制转成十进制
String n3 = Integer.valueOf("FFFF",16).toString();
System.out.println(n3);
//十六进制转成二进制
String n4 = Integer.toBinaryString(Integer.valueOf("FFFF",16));
System.out.println(n4);
//十六进制转成八进制
String n5 = Integer.toOctalString(Integer.valueOf("FFFF",16));
System.out.println(n5); //八进制转成十进制
String n6 = Integer.valueOf("576",8).toString();
System.out.println(n6);
//八进制转成二进制
String n7 = Integer.toBinaryString(Integer.valueOf("23",8));
System.out.println(n7);
//八进制转成十六进制
String n8 = Integer.toHexString(Integer.valueOf("23",8));
System.out.println(n8); //二进制转十进制
String n9 = Integer.valueOf("010110101010",2).toString();
System.out.println(n9);
//二进制转八进制
String n10 = Integer.toOctalString(Integer.parseInt("010110101010", 2));
System.out.println(n10);
//二进制转十六进制
String n11 = Integer.toHexString(Integer.parseInt("010110101010", 2)).toUpperCase();
System.out.println("0x"+n11); } }

程序运行效果,如下:

2、十进制转任意进制 [2-16]     和    任意进制间转换[2-16]

 package com.himi.code3;

 import java.util.Stack;

 public class TestDemo4 {

     public static void main(String[] args) {

         System.out.println("==============十进制 转化为  任意进制[2-16]==============");
System.out.println(transformation(255, 16));
System.out.println(transformation(254, 16));
System.out.println(transformation(1010, 9));
System.out.println(transformation(1010, 8));
System.out.println(transformation(255, 2)); System.out.println("==============任意进制间相互转换[2-16]==============");
System.out.println(baseNum("678", 16, 10));
System.out.println(baseNum("678", 9, 10));
System.out.println(baseNum("678", 9, 2));
} /**
* 十进制[正整数] 转 任意进制 (2 ~ 16)
*
* @param num
* 输入的十进制数
* @param base
* 要转换成的进制
*/
public static String transformation(int num, int base) {
if (base > 16) {
throw new RuntimeException("进制数超出范围,base<=16");
} if (num < 0) {
throw new RuntimeException("输入数据不能小于0");
} StringBuffer str = new StringBuffer(""); String digths = "0123456789ABCDEF"; Stack<Character> s = new Stack<Character>(); while (num != 0) {
s.push(digths.charAt(num % base));
num /= base;
} while (!s.isEmpty()) {
str.append(s.pop());
}
return str.toString();
} /**
* 16内任意进制间转换
*
* @param num
* 输入的数据
* @param srcBase
* 输入数据的进制
* @param destBase
* 要转换成的进制
* @return
*/ public static String baseNum(String num, int srcBase, int destBase) { if (Integer.valueOf(num) < 0) {
throw new RuntimeException("输入数据不能小于0");
} if (srcBase == destBase) {
return num;
} String digths = "0123456789ABCDEF";
char[] chars = num.toCharArray();
int len = chars.length; if (destBase != 10) {// 目标进制不是十进制 先转化为十进制
num = baseNum(num, srcBase, 10);
} else {
int n = 0;
for (int i = len - 1; i >= 0; i--) {
n += digths.indexOf(chars[i]) * Math.pow(srcBase, len - i - 1);
}
return n + "";
}
return transformation(Integer.valueOf(num), destBase);
} }

运行结果如下:

Java基础知识强化106:Java中 int 的各进制之间的转换的更多相关文章

  1. JavaScript中字符串与16进制之间的转换

    一.字符串转换为16进制 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

  2. Java基础知识强化之集合框架笔记76:ConcurrentHashMap之 ConcurrentHashMap简介

    1. ConcurrentHashMap简介: ConcurrentHashMap是一个线程安全的Hash Table,它的主要功能是提供了一组和Hashtable功能相同但是线程安全的方法.Conc ...

  3. JavaScript中进制之间的转换

    JavaScript中进制之间的转换 //十进制转其他 var x = 100; alert(x); alert(x.toString(2)); //转2进制 alert(x.toString(8)) ...

  4. js中数值各进制之间的转换

    十进制转换为二进制 toString()方法可把一个 Number 对象转换为一个字符串,并返回结果.语法如下: NumberObject.toString(radix); 其中,radix为可选.规 ...

  5. java------常见的进制、不同进制在代码中的表现形式、进制之间的转化、分辨率、三原色、计算机的存储规则

    常见的进制: 常见的进制:二进制.八进制.十进制.十六进制 不同进制在代码中的表现形式: 进制之间的转化: 二进制转十进制: 普通方法: 快捷方法: 八进制转十进制: 十六进制转十进制: 总结: 分辨 ...

  6. Java基础知识强化65:基本类型包装类之Integer的构造方法

    1. Integer类概述 (1)Integer类在对象中包装了一个基本类型 int 的值,Integer类型的对象包含一个int类型的字段. (2)该类提供了多个方法,能在int类型和String类 ...

  7. java基础知识回顾之---java String final类普通方法

    辞职了,最近一段时间在找工作,把在大二的时候学习java基础知识回顾下,拿出来跟大家分享,如果有问题,欢迎大家的指正. /*     * 按照面向对象的思想对字符串进行功能分类.     *      ...

  8. python中的2、8、16、10进制之间的转换

    python除法的坑 众所周知,python除法有两个运算符,一个是/,还有一个是//,那么这两个有什么不同之处呢? 从图片可以得知,使用//返回一个float类型,而使用/返回一个int类型.我们总 ...

  9. Java基础知识强化之集合框架笔记27:ArrayList集合练习之去除ArrayList集合中的重复字符串元素

    1. 去除ArrayList集合中的重复字符串元素(字符串内容相同) 分析: (1)创建集合对象 (2)添加多个字符串元素(包含重复的) (3)创建新的集合 (4)遍历旧集合,获取得到每一个元素 (5 ...

随机推荐

  1. c#通过操作mongodb gridfs实现文件的数据库存储

    @(编程) 源码 using MongoDB.Driver; using MongoDB.Driver.GridFS; using System.IO; namespace Wisdombud.Mon ...

  2. Codeforces 711 C. Coloring Trees (dp)

    题目链接:http://codeforces.com/problemset/problem/711/C 给你n棵树,m种颜色,k是指定最后的完美值.接下来一行n个数 表示1~n树原本的颜色,0的话就是 ...

  3. 2013-2014集训之DP

    第一周: 经过漫长的时间,终于有时间来写一下结题报告. 地址http://acm.hust.edu.cn/vjudge/contest/view.action?cid=36180#overview A ...

  4. 快速排序详解以及java实现

    快速排序作为一种高效的排序算法被广泛应用,SUN的JDK中的Arrays.sort 方法用的就是快排. 快排采用了经典的分治思想(divide and conquer): Divide:选取一个基元X ...

  5. Json.Net学习笔记

    http://www.cnblogs.com/xiaojinhe2/archive/2011/10/28/2227789.html Newtonsoft.Json(Json.Net)学习笔记 http ...

  6. Ehcache(05)——缓存的查询

    http://haohaoxuexi.iteye.com/blog/2117505 缓存的查询 目录 1.    使Cache可查询 1.1     基于Xml配置 1.2     基于代码的配置 2 ...

  7. ISA中的WEB链

    在ISA Server 2004中提供了Web链功能,它就相当于将ISA Server配置为二级代理,可以将你的请求转发到上游的代理服务器或其他站点.使用Web链,你就可以实现条件路由,对不同的目的地 ...

  8. 获取 CPU 序列号

    function GetCpuID: string; var _eax, _ebx, _ecx, _edx: Longword; s, s1, s2: string; begin asm push e ...

  9. 修改MyEclipse内存-------OutOfMemoryError错误

    1.打开MyEclipse后,进入Windows/Preferences/Java/Installed JREs 点击后,在右边窗口选择JREs,双击后进入 2.在Default VM Argumen ...

  10. Codeforces Round #310 (Div. 2) B. Case of Fake Numbers 水题

    B. Case of Fake Numbers Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/5 ...