2016-03-31 15 views
0

Benim kodum burada.Açıkça "0100001110111111" gibi bir ikili dizgeyi karşılık gelen hex biçimine dönüştürmek istiyorum. Kod küçük giriş dizeleri için iyi çalışıyor, ancak NumberFormatException uzun giriş dizesi için çalışıyor ve çalışmıyor.Bir ikili dizgeyi karşılık gelen hex dizesine dönüştürmek istiyorum.Ama ikili giriş dizesi çok uzun olduğunda NumberFormatException görüntüleniyor. Nasıl düzeltebilirim?

public class Test 
    { 
     public static void main(String[] args) 
     { 
     for (int i = 0; i < args.length; i++) 
     { 
      System.out.println("The value of " + args[i] + " is " + 
      Integer.toHexString(Integer.parseInt(args[i], 2))); 
     } 
     } 
    } 
+0

[Nasıl Java onaltılık bir dize dönüştürmek olabilir] http://stackoverflow.com/questions/18946597/how-can-i-convert-a- dize-in-hex-in-java – Alice

+0

[Java'da Onaltılık Bir String Dönüştürme] (http://stackoverflow.com/questions/923863/converting-a-string-to-hexadecimal-in-java) – Alice

cevap

2

Kullanım BigInteger:

String s = "0100001110111111010000111011111101000011101111110100001110111111"; 
BigInteger bi = new BigInteger(s, 2); 
System.out.println(bi.toString(16)); // prints: 43bf43bf43bf43bf 
+0

Teşekkür ederiz Andreas . Mükemmel çalışıyor! – Charleemagnee

+1

@Charleemagnee Daha sonra, onay işaretini tıklayarak cevabı kabul edin, böylece başkaları sizin sorunuzun cevabını tatmin edecek şekilde cevaplandırabilir. – Andreas