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 ...
随机推荐
- initialSize,maxTotal,maxIdle,minIdle,maxWaitMillis
初始化连接数:默认值 0 同一时刻可分配最大连接数:默认值 8 ,设置为负数时不做限制 最大空闲连接,默认值 8 ,超出连接将被释放 最小空闲连接数,默认值 0 请求连接最大等待时间(毫秒),默认值 ...
- C++中使用接口
面向对象的语言诸如JAVA提供了Interface来实现接口,但C++却没有这样一个东西,尽管C++ 通过纯虚基类实现接口,譬如COM的C++实现就是通过纯虚基类实现的(当然MFC的COM实现用了嵌套 ...
- 后台动态设置前台标签内容和属性(转自http://www.wzsky.net/html/Program/net/26171.html)
和以前的asp不同,在asp.net中为了彻底的代码分离,我们一般不采用<%=%>嵌入标签中来设置一些属性和内容.一般来说有2种情况:(一)设置标签的内容,比如<title>这 ...
- Android学习过程中遇到的问题
1.使用在Activity布局之上重叠显示操作栏,第一次使用出现错误信息. 错误信息如下:java.lang.RuntimeException:Ubable to start activity Com ...
- Python学习入门基础教程(learning Python)--5.1 Python下文件处理基本过程
Python下的文件读写操作过程和其他高级语言如C语言的操作过程基本一致,都要经历以下几个基本过程. 1. 打开文件 首先是要打开文件,打开文件的主要目的是为了建立程序和文件之间的联系.按程序访问文件 ...
- document.body为null的问题
虽然body是JS中的DOM技术中所有浏览器支持的属性,但在我们的代码编写中,还是会碰到document.is null问题 例如:我们可以使用alert(document.body);的时候,就会提 ...
- PostgreSQL中使用枚举类型
https://wiki.postgresql.org/wiki/Enum 建立enum: pgsql=# CREATE TYPE mood AS ENUM ('sad', 'ok', 'happy' ...
- JDBC-ODBC桥接方法连接Excel数据库的方法
通过JDBC-ODBC桥接器访问Excel电子表格 1.设置数据源 Excel数据源选择的驱动程序是Microsoft Excel Driver 2.选择表 与访问其他数据库不同的是,我们必须在电子表 ...
- d3.js <一>
<html> <head> <meta charset="utf-8"> <title>HelloWorld</title&g ...
- Spark MLlib Deep Learning Convolution Neural Network (深度学习-卷积神经网络)3.1
3.Spark MLlib Deep Learning Convolution Neural Network (深度学习-卷积神经网络)3.1 http://blog.csdn.net/sunbow0 ...