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. 高性能IO模型浅析(转)

    转自:http://www.cnblogs.com/fanzhidongyzby/p/4098546.html 是我目前看到的解释IO模型最清晰的文章,当然啦,如果想要详细的进一步了解还是继续啃蓝宝书 ...

  2. linux shell: 取得某个目录下的文件名列表

    取得某个目录下文件名的列表(没有子目录) ls -l dir/ | awk '{print "dir\\" $9}' #其中$9是ls -l 的第9个字段-文件名

  3. jquery页面滑到底部加载更多

    $(window).scroll(function(){ var _scrolltop = $('body').scrollTop();if(_scrolltop+_winHeight>_doc ...

  4. AIM Tech Round 3 (Div. 2) B 数学+贪心

    http://codeforces.com/contest/709 题目大意:给一个一维的坐标轴,上面有n个点,我们刚开始在位置a,问,从a点开始走,走n-1个点所需要的最小路程. 思路:我们知道,如 ...

  5. g1gc

    http://www.infoq.com/articles/G1-One-Garbage-Collector-To-Rule-Them-All http://blog.csdn.net/renfufe ...

  6. Android内存性能优化(内部资料总结) 转

    刚入门的童鞋肯能都会有一个疑问,Java不是有虚拟机了么,内存会自动化管理,我们就不必要手动的释放资源了,反正系统会给我们完成.其实Java中没有指针的概念,但是指针的使用方式依然存在,一味的依赖系统 ...

  7. 何查询SQL Server数据库没有主键的表并增加主键

    SQL Server数据库中,如果一个表没有主键,我们该如何查询呢?本文我们主要就介绍了如何查询数据库中没有主键的表名并为其增加主键的方法,希望能够对您有所帮助. 该功能的实现代码如下: declar ...

  8. iis8.0配置 使用备忘 403.14 - Forbidden Web 服务器被配置为不列出此目录的内容

    由于对iis的了解度不够,使用中总会碰到这样那样的问题,在这我先开个头,遇到问题再一一更新: 我用的是iis8; 1.发布到iis服务器下的网站你自己可以访问,局域网的其他机器不能? 答:是否开放了对 ...

  9. Linux:系统的基本优化

    前言,在拥有一台服务器的时候,首先第一件事就要根据自己的需求进行初期的优化(装好系统了),以下是关于linux系统的基本优化,内容来源与网络,自己整理了以下,忘记来自哪个网址了, centos 系统优 ...

  10. android usb挂载分析----vold启动

    http://blog.csdn.net/new_abc/article/details/7396733 前段时间做了下usb挂载的,现在出了几个bug,又要把流程给梳理下,顺便也把相关的知识总结下, ...