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. Ubuntu下载工具 uget+aria2

    一.安装. uget和aria2都可以在“软件中心”中安装,但是版本太老啦,无法发挥作用,所以最好还是在终端中添加ppa进行安装: 1.uget的安装:  sudo add-apt-repositor ...

  2. Light OJ 1006 - Hex-a-bonacci

    题目链接:http://acm.hust.edu.cn/vjudge/contest/121396#problem/G http://lightoj.com/volume_showproblem.ph ...

  3. Chapter 1 First Sight——22

    The girls were opposites. The tall one was statuesque. 女生却相反,高的像雕像一般 She had a beautiful figure, the ...

  4. zendstudio的安装与配置

    <微信公众平台应用开发实战>第1章搭建开发环境和相关技术介绍,本章会先介绍微信公众平台的一些基本概念和公众平台的开发模式:然后讲解如何搭建开发环境—AppServ和zendstudio:然 ...

  5. 一个web项目在myeclipse中add deployment时无法被识别出来的原因

    当我们一个web项目,在myeclipse中,add deployment时,可能发现,根本无法被识别成web项目,可能的原因有:   1. 项目的properties ->Myeclipse ...

  6. java sni support result in svn fail

    svn: E175002: handshake alert:  unrecognized_name http://stackoverflow.com/questions/7615645/ssl-han ...

  7. js中的整型都是用double存储的,有时候不精确,如,

    sss=187948800449444864 187948800449444860   好像16位的时候还可以. http://segmentfault.com/a/1190000002608050

  8. decompile elf

    no way, try,objdump --disassemble <elf file>

  9. MyEclipse2015 javaweb项目从svn检出后变成java项目,clean之后不能编译,解决办法是

     javaweb项目从svn检出后变成java项目,解决办法是:1.项目右键–properties–Project Facets,勾选上Dynamic Web Module .Java 两个复选框.点 ...

  10. zf-关于差旅报销的excel表单填写

    日期一定要填,还有二级科目事由跟申请金额,如果申请金额为0的话,那么久直接删除哪一行,因为如果不删除的话,Excel表单将提交出错.