2014-05-06 17:34 吴文付

最近由于工作上的需要,遇到进制转换的问题。涉及到的进制主要是 十进制,十六进制,二进制中间的转换。

这里整理一下。具体的计划为:封装一个转换类,一个测试类。

1、十进制 转 十六进制 二进制:

//调用java自带的api
//测试十进制转16进制 2进制
System.out.println("十进制10转16进制为"+Integer.toHexString(10));
System.out.println("十进制10转二进制为"+Integer.toBinaryString(10));

十进制转换二进制十六进制

2、十进制字符串转 16进制 转 2进制

将字符串转为 十进制后参考方法1

System.out.println("字符串10转16进制为"+Integer.toHexString(Integer.parseInt("10")));
System.out.println("字符串10转二进制为"+Integer.toBinaryString(Integer.parseInt("10")));

十进制字符串转16转2

3、16转2转10

 String h = "10000";
BigInteger srch = new BigInteger(h, 16); System.out.println("十六进制字符串10000转为10进制后为:"+srch.toString());//转换为10进制并输出结果
System.out.println("十六进制字符串10000转为2进制后为"+Integer.toBinaryString(Integer.parseInt(srch.toString())));

十六转2转10

2014-05-07 15:18 修正:

上面的转换使用了BigInteger对象,也可以不使用。

如下方式也可以

16-》2

可以如下:Integer.toBinaryString(Integer.parseInt("0xAA",16))

16-10:

Integer.parseInt("0xAA",16)

4、2转10转16

    String b = "10000";
BigInteger srcb= new BigInteger(b,2);//转换为BigInteger类型
System.out.println("二进制字符串10000转为10进制后为:"+srcb);//转换为10进制并输出结果
System.out.println("二进制字符串10000转为16进制后为"+Integer.toHexString(Integer.parseInt(srcb.toString())));

2转10转16

5、字节数组转 16进制字符串

 public static String BinaryToHexString(byte[] bytes){

           String hexStr =  "0123456789ABCDEF";
String result = "";
String hex = "";
for(int i=0;i<bytes.length;i++){
//字节高4位
hex = String.valueOf(hexStr.charAt((bytes[i]&0xF0)>>4));
//字节低4位
hex += String.valueOf(hexStr.charAt(bytes[i]&0x0F));
result +=hex+" "; //这里可以去掉空格,或者添加0x标识符。
}
return result;
}

byte[] 转16字符串

6、16进制字符串转 字节数组

 public static byte[] HexStrToBytes(String str)
{
//如果字符串长度不为偶数,则追加0
if(str.length() % 2 !=0){
str = "0"+str;
} byte[] b = new byte[str.length() / 2];
byte c1, c2;
for (int y = 0, x = 0; x < str.length(); ++y, ++x)
{
c1 = (byte)str.charAt(x);
if (c1 > 0x60) c1 -= 0x57;
else if (c1 > 0x40) c1 -= 0x37;
else c1 -= 0x30;
c2 = (byte)str.charAt(++x);
if (c2 > 0x60) c2 -= 0x57;
else if (c2 > 0x40) c2 -= 0x37;
else c2 -= 0x30;
b[y] = (byte)((c1 << 4) + c2);
}
return b;
}

16字符串转字节数组

2014-05-06 18:49 完成测试。

直接上代码吧。注释已经很清楚了

工程地址:http://download.csdn.net/detail/douniwan123654/7305195

测试后截图:

Java的进制转换操作(十进制、十六进制、二进制)的更多相关文章

  1. C++进制转换(十进制转二进制、八进制、随意进制)

    十进制转二进制: //十进制转二进制 #include<iostream> using namespace std; void printbinary(const unsigned int ...

  2. Java基础-进制转换

    Java基础-进制转换 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Java 程序中常用的进制 1>.十进制,由“0123456789” 这10个数字组成,逢十进一: ...

  3. 《java版进制转换》

    import java.util.Scanner; class 十进制转成十六进制_2 { public static void main(String[] args) { int num = 0; ...

  4. Java:进制转换

    进制转换是常常需要的一种数据处理,在java中的一些类中封装了具有转换功能的方法,这个不做介绍.其实,进制之间的转化是通过先位异或&,再位移动>>>的方式实现的. 例如,对于 ...

  5. Java 之进制转换

    //十进制转十六进制 import java.util.Scanner; public class Main{ public static void main(String[] args){ Scan ...

  6. java高精度进制转换

    POJ1131   由于本题只有小数部分(整数部分均为0),故在进制转换的之后只能自己手写转换方法了.   8进制转换10进制的方法为,以0.75为例,应是7*8^-1 + 5*8^-2.所以呢,可以 ...

  7. Java的进制转换

    十进制转其它进制 其它进制转十进制 A进制转B进制可以将十进制作为中间媒介 Integer.toString(int i, int radix) 返回用第二个参数指定基数表示的第一个参数的字符串表示形 ...

  8. Java里进制转换(二进制、八进制、十进制、十六进制)

    // 十进制转其它进制(二进制,八进制,十六进制) int k = 17; System.out.println(Integer.toBinaryString(k));// 转二进制 System.o ...

  9. java之进制转换

    [转载]晨风�0�5�0�2�0�1�6�6 2014年03月08日 于 爱Java 发表 众所周知.程序世界计算机中采用的是二进制,一个数字可以用任意进制表示.所以看一个数据值的同时.还要观察它的进 ...

随机推荐

  1. CSS3中的skew()属性

    刚开始接触CSS3的2D变换属性,就被这个skew()搞的一头雾水,不知道具体是怎么变化的! 研究了一会才发现,CSS3的斜切坐标系和数学中的坐标系完全不一样(设置斜切原点为左上角) <styl ...

  2. 把Ubuntu用户目录下的目录名改成英文

    直接改名字是不行的,一重启就回去了 方法一: 把中文文件夹改成相应的英文文件夹,再修改配置文件 ~/.config/user-dirs.dirs XDG_DESKTOP_DIR="$HOME ...

  3. 提升html5的性能体验系列之二列表流畅滑动

    App的顶部一般有titlebar,下面是list.常见的一个需求是要在list滚动时,titlebar不动.这个简单的需求,实现起来其实并不简单. 在普通web上的做法是使用div的滚动条,把lis ...

  4. AJAX开发技术--AJAX简介

    Asynchronous  JavaScript and XML,异步JavaScript和XML 主要目的用于页面的局部刷新.不用全部刷新,提高性能. 在AJAX中主要是通过XMLHttpReque ...

  5. shell执行php文件传递参数

    php -f index.php hello test 2314 shell命令执行php文件不像http那样通过GET方式传参 同样php文件获取的时候也不能用$_GET方法了 而是通过$argv[ ...

  6. GPRS管理与创建APN拨号连接(转)

    源:http://www.cnblogs.com/michael-zhangyu/archive/2009/07/04/1516797.html 本文主要介绍一些GPRS管理与创建APN拨号连接相关的 ...

  7. C#入门经典(2-重置窗体布局,界面介绍,错误列表)

  8. dom4j解析xml实例

    dom4j是一个java的XML API,类似jdom,用来读写XML文件,它性能优异.功能强大和极易使用等特点 所用jar包:dom4j-1.6.1.jar 需要解析的xml文件:people.xm ...

  9. C#获取IPv4代码

    using System; using System.Collections.Generic; using System.Collections.Specialized; using System.C ...

  10. Android开发环境配置(win7_64bit)

    Android开发环境配置(win7_64bit) 目录 1.概述 2.Android开发涉及的技术 3.Android常用开发环境搭建 4.注意事项 >>看不清的图片可在新标签打开查看大 ...