Java基础知识强化106:Java中 int 的各进制之间的转换
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 的各进制之间的转换的更多相关文章
- JavaScript中字符串与16进制之间的转换
一.字符串转换为16进制 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...
- Java基础知识强化之集合框架笔记76:ConcurrentHashMap之 ConcurrentHashMap简介
1. ConcurrentHashMap简介: ConcurrentHashMap是一个线程安全的Hash Table,它的主要功能是提供了一组和Hashtable功能相同但是线程安全的方法.Conc ...
- JavaScript中进制之间的转换
JavaScript中进制之间的转换 //十进制转其他 var x = 100; alert(x); alert(x.toString(2)); //转2进制 alert(x.toString(8)) ...
- js中数值各进制之间的转换
十进制转换为二进制 toString()方法可把一个 Number 对象转换为一个字符串,并返回结果.语法如下: NumberObject.toString(radix); 其中,radix为可选.规 ...
- java------常见的进制、不同进制在代码中的表现形式、进制之间的转化、分辨率、三原色、计算机的存储规则
常见的进制: 常见的进制:二进制.八进制.十进制.十六进制 不同进制在代码中的表现形式: 进制之间的转化: 二进制转十进制: 普通方法: 快捷方法: 八进制转十进制: 十六进制转十进制: 总结: 分辨 ...
- Java基础知识强化65:基本类型包装类之Integer的构造方法
1. Integer类概述 (1)Integer类在对象中包装了一个基本类型 int 的值,Integer类型的对象包含一个int类型的字段. (2)该类提供了多个方法,能在int类型和String类 ...
- java基础知识回顾之---java String final类普通方法
辞职了,最近一段时间在找工作,把在大二的时候学习java基础知识回顾下,拿出来跟大家分享,如果有问题,欢迎大家的指正. /* * 按照面向对象的思想对字符串进行功能分类. * ...
- python中的2、8、16、10进制之间的转换
python除法的坑 众所周知,python除法有两个运算符,一个是/,还有一个是//,那么这两个有什么不同之处呢? 从图片可以得知,使用//返回一个float类型,而使用/返回一个int类型.我们总 ...
- Java基础知识强化之集合框架笔记27:ArrayList集合练习之去除ArrayList集合中的重复字符串元素
1. 去除ArrayList集合中的重复字符串元素(字符串内容相同) 分析: (1)创建集合对象 (2)添加多个字符串元素(包含重复的) (3)创建新的集合 (4)遍历旧集合,获取得到每一个元素 (5 ...
随机推荐
- C#读取文件为byte数组
private byte[] FileContent(string fileName) { using (FileStream fs = new FileStream(fileName, FileMo ...
- Win7系统下利用U盘安装Ubuntu14.04麒麟版
转自http://www.360doc.cn/article/14743053_335473181.html 重要提示:在采用u盘安装ubuntu分区时,所有磁盘一定要全部设置成逻辑分区,包括根目录/ ...
- C#中DllImport用法和路径问题
DllImport是System.Runtime.InteropServices命名空间下的一个属性类,其功能是提供从非托管DLL导出的函数的必要调用信息. DllImport属性应用于方法,要 ...
- C# 获取字符串中的数字
/// <summary> /// 获取字符串中的数字(不包含小数点) /// </summary> /// <param name="str"> ...
- maven仓库介绍
maven仓库介绍 http://juvenshun.iteye.com/blog/359256
- 支付宝修改回调地址后 issign=false
原因: verifyReturn 拼接url的时候,php自动添加了url参数,而url是本不需要的,所以导致md5对比出错. 修改 alipay_notify.class.php 77行的函数 ...
- HRESULT 0x80131515 解决方法
http://254698001.blog.51cto.com/2521548/1339696 很多朋友在加载DLL是发生这样的错误:HRESULT: 0x80131515. 解决方法是,在DLL文件 ...
- Windows Server 2012远程刷新客户端组策略,IE代理设置
Windows Server 2012远程刷新客户端组策略: 1.PowerShell命令对单台计算机进行刷新: Invoke-GPUpdate -RandomDelayInMinutes 0 -Co ...
- SCCM客户端推送/卸载
站点配置--站点--层次结构设置--自动批准客户端 ccm客户端安装日志:服务器端的ccm.log安装ccm客户端,需要添加一个具有访问客户端$admin权限的账户,如下:站点名称-右键 客户端安装设 ...
- Mono4安装教程
一. 更新系统 yum –y update 二.安装Mono源码安装需要的库 yum -y install gcc gcc-c++ bison pkgconfig glib2-devel gettex ...