Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!feeder.erje.net!eu.feeder.erje.net!news.albasani.net!.POSTED!not-for-mail From: Laura Schmidt Newsgroups: comp.lang.java.programmer Subject: Re: convert byte array to hex string using BigInteger Date: Thu, 20 Jun 2013 15:32:56 +0200 Organization: albasani.net Lines: 27 Message-ID: References: <9hv5s85cul11v42sfop0388joag6mu6t4e@4ax.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Trace: news.albasani.net nNmLG4MIHWHG0DXLdQiI86nOobXHJ27SHSvEOGD3Ua5VZWhYhevYmabaJrGCnciswPOU7C+QtXLw8HENM6GTH/IYCmzwGUlfzTDg2dVnQhjumICDZyPe7yd6ine8/mq4 NNTP-Posting-Date: Thu, 20 Jun 2013 13:32:57 +0000 (UTC) Injection-Info: news.albasani.net; logging-data="P5O5efvJ+3TXkPitwJEiMLrAzEhkvfkVZ/le8Y7+N7uwR9L4aUj2+N8JdqhV0+3UJzpiMDpVRiepDaHPgl4Oa1pLR1aIO+nTkzduSTpNtj7cxRMwSIClAp3eERDdWusF"; mail-complaints-to="abuse@albasani.net" User-Agent: Mozilla/5.0 (X11; Linux i686; rv:10.0.12) Gecko/20130116 Icedove/10.0.12 In-Reply-To: <9hv5s85cul11v42sfop0388joag6mu6t4e@4ax.com> Cancel-Lock: sha1:MokL3Cmd7+mQuEooH1sfDXcTByQ= Xref: csiph.com comp.lang.java.programmer:24485 On 06/20/2013 03:09 PM, rossum wrote: > This is a case of RTFM. The Javadocs for BigInteger(byte[]) tell you > that it expects the byte array in two's complement representation, so > a leading 1 bit is interpreted as a negative number. You need a > different constructor: > > public BigInteger(int signum, byte[] magnitude) You are right, sorry. Now I get a hex string without sign. But now the decode method does not return the original bytes anymore: private byte [] hex_decode (String val) { BigInteger b = new BigInteger (val,16); byte [] t = b.toByteArray(); return (t); } There is no other constructor for byte arrays. And I don't really understand why it doesn't return the original byte array. Laura