1、二、八、十、十六进制之间的转换

 下面是示例代码,我们直接通过JDK工具库中的方法实现的,如下:

  1. public static Integer valueOf(String s, int radix)

参数为:

  String s要解析的字符串

  int radix解析s字符串的进制

  1. package com.himi.radix;
  2. /**
  3. * Java中如何实现十进制到其他进制的转换
  4. * @author hebao
  5. *
  6. */
  7. public class IntegerToOther {
  8. public static void main(String[] args) {
  9. int n = 14;
  10. //十进制转成十六进制:
  11. String n0 = Integer.toHexString(n);
  12. System.out.println("0x"+n0.toUpperCase());
  13. //十进制转成八进制
  14. String n1 = Integer.toOctalString(n);
  15. System.out.println(n1);
  16. //十进制转成二进制
  17. String n2 = Integer.toBinaryString(12);
  18. System.out.println(n2);
  19. //十六进制转成十进制
  20. String n3 = Integer.valueOf("FFFF",16).toString();
  21. System.out.println(n3);
  22. //十六进制转成二进制
  23. String n4 = Integer.toBinaryString(Integer.valueOf("FFFF",16));
  24. System.out.println(n4);
  25. //十六进制转成八进制
  26. String n5 = Integer.toOctalString(Integer.valueOf("FFFF",16));
  27. System.out.println(n5);
  28. //八进制转成十进制
  29. String n6 = Integer.valueOf("576",8).toString();
  30. System.out.println(n6);
  31. //八进制转成二进制
  32. String n7 = Integer.toBinaryString(Integer.valueOf("23",8));
  33. System.out.println(n7);
  34. //八进制转成十六进制
  35. String n8 = Integer.toHexString(Integer.valueOf("23",8));
  36. System.out.println(n8);
  37. //二进制转十进制
  38. String n9 = Integer.valueOf("010110101010",2).toString();
  39. System.out.println(n9);
  40. //二进制转八进制
  41. String n10 = Integer.toOctalString(Integer.parseInt("010110101010", 2));
  42. System.out.println(n10);
  43. //二进制转十六进制
  44. String n11 = Integer.toHexString(Integer.parseInt("010110101010", 2)).toUpperCase();
  45. System.out.println("0x"+n11);
  46. }
  47. }

程序运行效果,如下:

2、十进制转任意进制 [2-16]     和    任意进制间转换[2-16]

  1. package com.himi.code3;
  2. import java.util.Stack;
  3. public class TestDemo4 {
  4. public static void main(String[] args) {
  5. System.out.println("==============十进制 转化为 任意进制[2-16]==============");
  6. System.out.println(transformation(255, 16));
  7. System.out.println(transformation(254, 16));
  8. System.out.println(transformation(1010, 9));
  9. System.out.println(transformation(1010, 8));
  10. System.out.println(transformation(255, 2));
  11. System.out.println("==============任意进制间相互转换[2-16]==============");
  12. System.out.println(baseNum("678", 16, 10));
  13. System.out.println(baseNum("678", 9, 10));
  14. System.out.println(baseNum("678", 9, 2));
  15. }
  16. /**
  17. * 十进制[正整数] 转 任意进制 (2 ~ 16)
  18. *
  19. * @param num
  20. * 输入的十进制数
  21. * @param base
  22. * 要转换成的进制
  23. */
  24. public static String transformation(int num, int base) {
  25. if (base > 16) {
  26. throw new RuntimeException("进制数超出范围,base<=16");
  27. }
  28. if (num < 0) {
  29. throw new RuntimeException("输入数据不能小于0");
  30. }
  31. StringBuffer str = new StringBuffer("");
  32. String digths = "0123456789ABCDEF";
  33. Stack<Character> s = new Stack<Character>();
  34. while (num != 0) {
  35. s.push(digths.charAt(num % base));
  36. num /= base;
  37. }
  38. while (!s.isEmpty()) {
  39. str.append(s.pop());
  40. }
  41. return str.toString();
  42. }
  43. /**
  44. * 16内任意进制间转换
  45. *
  46. * @param num
  47. * 输入的数据
  48. * @param srcBase
  49. * 输入数据的进制
  50. * @param destBase
  51. * 要转换成的进制
  52. * @return
  53. */
  54. public static String baseNum(String num, int srcBase, int destBase) {
  55. if (Integer.valueOf(num) < 0) {
  56. throw new RuntimeException("输入数据不能小于0");
  57. }
  58. if (srcBase == destBase) {
  59. return num;
  60. }
  61. String digths = "0123456789ABCDEF";
  62. char[] chars = num.toCharArray();
  63. int len = chars.length;
  64. if (destBase != 10) {// 目标进制不是十进制 先转化为十进制
  65. num = baseNum(num, srcBase, 10);
  66. } else {
  67. int n = 0;
  68. for (int i = len - 1; i >= 0; i--) {
  69. n += digths.indexOf(chars[i]) * Math.pow(srcBase, len - i - 1);
  70. }
  71. return n + "";
  72. }
  73. return transformation(Integer.valueOf(num), destBase);
  74. }
  75. }

运行结果如下:

Java基础知识强化106:Java中 int 的各进制之间的转换的更多相关文章

  1. JavaScript中字符串与16进制之间的转换

    一.字符串转换为16进制 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

  2. Java基础知识强化之集合框架笔记76:ConcurrentHashMap之 ConcurrentHashMap简介

    1. ConcurrentHashMap简介: ConcurrentHashMap是一个线程安全的Hash Table,它的主要功能是提供了一组和Hashtable功能相同但是线程安全的方法.Conc ...

  3. JavaScript中进制之间的转换

    JavaScript中进制之间的转换 //十进制转其他 var x = 100; alert(x); alert(x.toString(2)); //转2进制 alert(x.toString(8)) ...

  4. js中数值各进制之间的转换

    十进制转换为二进制 toString()方法可把一个 Number 对象转换为一个字符串,并返回结果.语法如下: NumberObject.toString(radix); 其中,radix为可选.规 ...

  5. java------常见的进制、不同进制在代码中的表现形式、进制之间的转化、分辨率、三原色、计算机的存储规则

    常见的进制: 常见的进制:二进制.八进制.十进制.十六进制 不同进制在代码中的表现形式: 进制之间的转化: 二进制转十进制: 普通方法: 快捷方法: 八进制转十进制: 十六进制转十进制: 总结: 分辨 ...

  6. Java基础知识强化65:基本类型包装类之Integer的构造方法

    1. Integer类概述 (1)Integer类在对象中包装了一个基本类型 int 的值,Integer类型的对象包含一个int类型的字段. (2)该类提供了多个方法,能在int类型和String类 ...

  7. java基础知识回顾之---java String final类普通方法

    辞职了,最近一段时间在找工作,把在大二的时候学习java基础知识回顾下,拿出来跟大家分享,如果有问题,欢迎大家的指正. /*     * 按照面向对象的思想对字符串进行功能分类.     *      ...

  8. python中的2、8、16、10进制之间的转换

    python除法的坑 众所周知,python除法有两个运算符,一个是/,还有一个是//,那么这两个有什么不同之处呢? 从图片可以得知,使用//返回一个float类型,而使用/返回一个int类型.我们总 ...

  9. Java基础知识强化之集合框架笔记27:ArrayList集合练习之去除ArrayList集合中的重复字符串元素

    1. 去除ArrayList集合中的重复字符串元素(字符串内容相同) 分析: (1)创建集合对象 (2)添加多个字符串元素(包含重复的) (3)创建新的集合 (4)遍历旧集合,获取得到每一个元素 (5 ...

随机推荐

  1. MyEclipse中无法将SVN检出来的项目部署到tomcat中

    自己遇到的小问题  : 要以web项目方式从svn上倒下来才可以部署到tomcat下检出步骤: myEclipse -->File-->new-->other-->svn--& ...

  2. POJ 1947 Rebuilding Roads (树dp + 背包思想)

    题目链接:http://poj.org/problem?id=1947 一共有n个节点,要求减去最少的边,行号剩下p个节点.问你去掉的最少边数. dp[u][j]表示u为子树根,且得到j个节点最少减去 ...

  3. Minus-C 一个最小化的C语言规范

    资深C++程序员都不会对C++编程规范太陌生,C++实在太复杂,以至于所有项目都需要裁剪一个子集共项目组内使用.经过在家休息这一小段时间,我发现其实C语言更需要一个相同的规范,这就是本文的目标,最大可 ...

  4. Castle 开发系列文章

    转自:http://terrylee.cnblogs.com/archive/2006/04/28/castl_ioc_article.html Castle是针对.NET平台的一个开源项目,从数据访 ...

  5. javascript js 内存泄露工具使用

    javascript内存泄露工具使用 原文:http://lanhy2000.blog.163.com/blog/static/43678608201121472644851/ 2011-03-14 ...

  6. 如果浏览器自动调用quirks模式打开的话

    (从已经死了一次又一次终于挂掉的百度空间人工抢救出来的,发表日期 2014-03-21) 则肯定你的html的声明,没有写好. 今天遇到几个,前面莫名其妙的多了个空格(在网页上看源码是多空格,复制到n ...

  7. perl学习笔记(4)——动态加载

    在写perl的时候,如果要应用到各种平台的话,比如linux 和windows,会遇到各种问题,有时就是要根据系统类型来加载各种库,之前写的就是这样的, if($^O eq 'linux'){ use ...

  8. 凯尔卡C68全球版汽车电脑诊断仪

    产品简介: C68汽车故障诊断仪是凯尔卡公司新推出的一款集经济.简约.稳定.耐用于一体的汽车诊断设备, 该产品采用了最新的智能移植技术,集成度高:C68车型覆盖广,测试功能强大.数据准确等优点, 是目 ...

  9. 学习理论之正则化(Regularization)与模型选择

    一.引言 对于一个学习问题,可以假设很多不同的模型,我们要做的是根据某一标准选出最好的模型.例如,在多项式回归中,对于我们的假设模型,我们最要紧的是决定 k 到底取多少合适,能不能有一种方法可以自动选 ...

  10. 【ASP.NET】C# 将HTML中Table导出到Excel(TableToExcel)

    首先,说下应用场景 就是,把页面呈现的Table 导出到Excel中.其中使用的原理是 前台使用ajax调用aspx后台,传递过去参数值,导出.使用的组件是NPOI. 前台调用: <script ...