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# Common Keyword
[C# Common Keyword] 1.abstract Use the abstract modifier in a class declaration to indicate that a c ...
- LabVIEW数据记录和存储—XML文件
XML(eXtensible Markup Language)是一种目前广泛使用的数据传输和存储的格式,其本质上是一种文本文件,可以使用任何一个文本编辑工具打开和修改.类似于HTML,XML被设计为具 ...
- CCF 201312-2 ISBN号码 (水题)
问题描述 每一本正式出版的图书都有一个ISBN号码与 之对应,ISBN码包括9位数字.1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”是分隔符(键盘上的减号),最后 ...
- CodeForces 702 A Maximum Increase (贪心,高效算法)
题意:给定 n 个数,问你连续的最长的序列是几个. 析:从头扫一遍即可. 代码如下: #include <cstdio> #include <string> #include ...
- POJ 3169 Layout (差分约束)
题意:给定一些母牛,要求一个排列,有的母牛距离不能超过w,有的距离不能小于w,问你第一个和第n个最远距离是多少. 析:以前只是听说过个算法,从来没用过,差分约束. 对于第 i 个母牛和第 i+1 个, ...
- 基于MySQL协议的数据库中间层项目Atlas - 360团队
一.简介 Atlas是由 Qihoo 360公司Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目.它在MySQL官方推出的MySQL-Proxy 0.8.2版本的基础上,修改了 ...
- 完整Deploy WebPlayer的Config
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...
- .NET两种常见上传下载文件方法
1.FTP模式 代码如下: (1)浏览 /// <summary> /// 浏览文件 /// </summary> /// <param name="tbCon ...
- 应用程序如何找到DLL文件?
使用LoadLibrary显式链接,那么在函数的参数中可以指定DLL文件的完整路径: 如果不指定路径,或者进行隐式链接,Windows将遵循下面的搜索顺序来定位DLL: (1)包含EXE文件的目录(2 ...
- PL/pgSQL学习笔记之十
http://www.postgresql.org/docs/9.1/static/plpgsql-declarations.html 39.3.3. 类型拷贝 variable%TYPE %TYPE ...