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 ...
随机推荐
- MyEclipse中无法将SVN检出来的项目部署到tomcat中
自己遇到的小问题 : 要以web项目方式从svn上倒下来才可以部署到tomcat下检出步骤: myEclipse -->File-->new-->other-->svn--& ...
- POJ 1947 Rebuilding Roads (树dp + 背包思想)
题目链接:http://poj.org/problem?id=1947 一共有n个节点,要求减去最少的边,行号剩下p个节点.问你去掉的最少边数. dp[u][j]表示u为子树根,且得到j个节点最少减去 ...
- Minus-C 一个最小化的C语言规范
资深C++程序员都不会对C++编程规范太陌生,C++实在太复杂,以至于所有项目都需要裁剪一个子集共项目组内使用.经过在家休息这一小段时间,我发现其实C语言更需要一个相同的规范,这就是本文的目标,最大可 ...
- Castle 开发系列文章
转自:http://terrylee.cnblogs.com/archive/2006/04/28/castl_ioc_article.html Castle是针对.NET平台的一个开源项目,从数据访 ...
- javascript js 内存泄露工具使用
javascript内存泄露工具使用 原文:http://lanhy2000.blog.163.com/blog/static/43678608201121472644851/ 2011-03-14 ...
- 如果浏览器自动调用quirks模式打开的话
(从已经死了一次又一次终于挂掉的百度空间人工抢救出来的,发表日期 2014-03-21) 则肯定你的html的声明,没有写好. 今天遇到几个,前面莫名其妙的多了个空格(在网页上看源码是多空格,复制到n ...
- perl学习笔记(4)——动态加载
在写perl的时候,如果要应用到各种平台的话,比如linux 和windows,会遇到各种问题,有时就是要根据系统类型来加载各种库,之前写的就是这样的, if($^O eq 'linux'){ use ...
- 凯尔卡C68全球版汽车电脑诊断仪
产品简介: C68汽车故障诊断仪是凯尔卡公司新推出的一款集经济.简约.稳定.耐用于一体的汽车诊断设备, 该产品采用了最新的智能移植技术,集成度高:C68车型覆盖广,测试功能强大.数据准确等优点, 是目 ...
- 学习理论之正则化(Regularization)与模型选择
一.引言 对于一个学习问题,可以假设很多不同的模型,我们要做的是根据某一标准选出最好的模型.例如,在多项式回归中,对于我们的假设模型,我们最要紧的是决定 k 到底取多少合适,能不能有一种方法可以自动选 ...
- 【ASP.NET】C# 将HTML中Table导出到Excel(TableToExcel)
首先,说下应用场景 就是,把页面呈现的Table 导出到Excel中.其中使用的原理是 前台使用ajax调用aspx后台,传递过去参数值,导出.使用的组件是NPOI. 前台调用: <script ...