java中16进制和字符串和十进制间的转换

xiaoxiao2026-08-21  16

最近做这方面的程序,发现网上的没有系统的归纳一下。我现在把我所知道贡献给大家:

// 转化字符串为十六进制编码 public static String toHexString(String str) {         String result= " ";         for (int i=0;i <str.length();i ++) {               int ch = (int)str.charAt(i);               String s = Integer.toHexString(ch);               result = str+ s;         }         return result; }

//转换10进制为16进制

int i=10;

String result=Integer.toHexString(i); //可以得到result为"a";

 

//把字符串转换成16进制。以字符串的形式返回

public static String encode(String str){     // 根据默认编码获取字节数组     byte[] bytes=str.getBytes();     StringBuilder sb=new StringBuilder(bytes.length*2);      // 将字节数组中每个字节拆解成2位16进制整数      for(int i=0;i <bytes.length;i++){             sb.append(hexString.charAt((bytes[i]&0xf0)>> 4));             sb.append(hexString.charAt((bytes[i]&0x0f)>> 0));       }        return sb.toString(); }

 

 

/*  * 将16进制数字解码成字符串,适用于所有字符(包括中文)  */ public static String decode(String bytes) {            ByteArrayOutputStream baos=new ByteArrayOutputStream(bytes.length()/2);              //将每2位16进制整数组装成一个字节             for(int i=0;i<bytes.length();i+=2)                   baos.write((hexString.indexOf(bytes.charAt(i))<<4 |hexString.indexOf(bytes.charAt(i+1))));              return new String(baos.toByteArray());  }

相关资源:十六进制转成十进制的java程序实现
转载请注明原文地址: https://www.6miu.com/read-5051599.html

最新回复(0)