Java 进制转换

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")));
 



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())));
        
复制代码
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())));



        

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;  
     }

复制代码




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;
     }

     

java]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. System.out.println(Integer.toOctalString(n));  
  2. System.out.println(Integer.toBinaryString(arg0));//十进制转换为二进制  
  3. System.out.println(Integer.toOctalString(arg0));//十进制转换为八进制  
  4. System.out.println(Integer.toHexString(arg0));//十进制转换为十六进制  
  5. System.out.println(Integer.valueOf("FFFF",16).toString());//十六进制转换为十进制  
  6. System.out.println(Integer.valueOf("5",8).toString());//八进制转换为十进制  
  7. System.out.println(Integer.valueOf("0101",2).toString());//二进制转换为十进制  


复制代码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值