2011-05-30 181 views
1

在我的程序中,我得到一个六进制格式的字符串。我想将其转换为字符串。怎么做 ?从六进制十进制值转换为字符串

感谢和问候。 帕尔瓦蒂

+1

字符串转换为字符串?你的意思是int吗? – alexbrn 2011-05-30 07:28:20

+1

请编辑您的问题,并添加一个示例:(1)您获得的字符串(十六进制格式)和(2)显示转换后预期结果的字符串。 – 2011-05-30 07:38:06

回答

1

使用下面的代码为十六进制转换成字符串

String hexadecimalnumber = "00000011"; 
    BigInteger big = new BigInteger(hexadecimalnumber); 
    String requiredString = big.toString(16); 
    System.out.println("...data..."+requiredString); 

感谢 迪帕克

+0

“00000011”看起来像一个代表3(十进制)的8位二进制的字符串表示。或者它的意思是代表17(十进制)的32位十六进制字符串。 ;-) – Squonk 2011-05-30 08:01:42

0
String hex = "ff"; 
hex = Integer.toString(Integer.parseInt(hex, 16)); 
-1
class Test 
{ 
    private static int hextoint(char c) { 
     if (c >= '0' && c <= '9') { 
      return c - '0'; 
     } 
     if (c >= 'a' && c <= 'f') { 
      return c - 'a' + 10; 
     } 
     if (c >= 'A' && c <= 'F') { 
      return c - 'A' + 10; 
     } 
     return -1; 
    } 

    private static String hexdec(String str) { 
     int len = str.length(); 
     if(len % 2 != 0){ 
      return null; 
     } 
     byte[] buf = new byte[len/2]; 
     int size = 0; 
     for (int i = 0; i < len; i += 2) { 
      char c1 = str.charAt(i); 
      char c2 = str.charAt(i + 1); 
      int b = (hextoint(c1) << 4) + hextoint(c2); 
      buf[size++] = (byte)b; 
     } 

     return new String(buf, 0, size); 
    } 

    public static void main(String[] args) 
    { 
     String str = "616263"; 
     String out = hexdec(str); 
     System.out.println(out); 
    } 
} 
+0

当这个功能已经存在于Java库中时,不是一个好主意(请参阅:http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Integer。 html#parseInt(java.lang.String,%20int%29) - 此代码不能正确使用负数十六进制数 – alexbrn 2011-05-30 08:33:21

+0

嗨,parseInt不是十六进制数如果通过分割为2个字节的长度字符串来解码十六进制字符串,然后parseInt,它很慢。 – ideawu 2011-05-30 08:52:17

+0

我的意思是十六进制字符串dec – ideawu 2011-05-30 09:00:01

相关问题