Gå til innhold

Anbefalte innlegg

Emne tittelen er kanskje litt lite passende men her kommer problemet mitt.

 

Eg har eit server program i c++. Dette programmet har ein variable ved navn B som er av typen BigInteger. Denne variablen blir sent over ein TCP oppkobling ved hjelp av følgande kode:

 

pkt.append(B.AsByteArray(), 32);

 

Så har eg eit java program som skal fungere som ein klient og dette programmet leser inn BigIntegeren ved hjelp av denne koden

 

buff = new byte[32];
in.read(buff);
BigInteger i = new BigInteger(buff);

 

Men vist eg skriver ut B på serveren til konsollet ved hjelp av B.AsHexString og innhaldet i buff ved hjelp av følgande funksjon:

 

private static final char hexToAscii(int h) {
   if ( ( h >= 10 ) && ( h <= 15 ) )
     return (char)( 'A' + ( h - 10 ) );
   if ( ( h >= 0 ) && ( h <= 9 ) )
     return (char)( '0' + h );
   return '0';
 }
   public static String tohex(byte[] buffer) {
   StringBuffer result = new StringBuffer();

   for(int i = 0; i < buffer.length; ++i)
     result.append(hexToAscii((buffer[i] >>> 4) & 0xF))
    .append(hexToAscii(buffer[i] & 0x0F));
   return result.toString();
 }

 

så er teksten forskellig :/ Noen som veit kvifor dette skjer?

Lenke til kommentar
Videoannonse
Annonse

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...