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 ...
随机推荐
- vim之vba文件
[vim之vba文件] Vimball 官方描述: The vimball plugin facilitates creating, extracting , and listing the cont ...
- python 递归遍历文件夹
#!/usr/bin/python import os.path def readXmls(folder): #三个参数:分别返回1.父目录 2.所有文件夹名字(不含路径) 3.所有文件名字 for ...
- (转载)Java里快如闪电的线程间通讯
转自(http://www.infoq.com/cn/articles/High-Performance-Java-Inter-Thread-Communications) 这个故事源自一个很简单的想 ...
- [iOS微博项目 - 3.2] - 发送微博
github: https://github.com/hellovoidworld/HVWWeibo A.使用微博API发送微博 1.需求 学习发送微博API 发送文字微博 发送带有图片的微博 ...
- commondline 之二 执行类
E:\cn\zno\commandline\Test.class package cn.zno.commandline; import java.lang.management.ManagementF ...
- https,https的本地测试环境搭建,asp.net结合https的代码实现,http网站转换成https网站之后遇到的问题
一:什么是https SSL(Security Socket Layer)全称是加密套接字协议层,它位于HTTP协议层和TCP协议层之间,用于建立用户与服务器之间的加密通信,确保所传递信息的安 ...
- php 将字符串中的连续多个空格转换为一个空格
转载自:http://www.phpernote.com/php-function/633.html /** * 多个连续空格只保留一个 * * @param string $string 待转换的字 ...
- CMSIS Example - Mail and Message
/*---------------------------------------------------------------------------- * RL-ARM - RTX *----- ...
- Windows Server 2003下ASP.NET无法识别IE11的解决方法
由于IE11对User-Agent字符串进行了比较大的改动,所以导致很多通过User-Agent来识别浏览器的程序,都相应的出现了无法识别IE11的情况.(普通用户端则可以通过这个方法来进行设置.) ...
- ssh-keygen 无密码登陆需要注意一个问题
从今天开始记录一下工程上的小知识. ssh-keygen -t rsa cat id_rsa.pub >> authorized_keys后,切记,将authrorized_keys文件的 ...