C ++ en Java Byte Array

Sorry voor de newbie vragen. Ik heb geen ervaring met C ++. Ik heb een methode in C ++ die hash-waarde genereert, gegeven een invoer. De uitvoer wordt opgeslagen als char outCode [outlen] . Ik heb een javamethode die hash-waarden genereert die worden ingevoerd en de uitvoer wordt opgeslagen als byte [] -uitvoer . Ik stuur de c ++ -waarde als een stream naar java. Hoe kan ik vergelijken om te controleren of ze dezelfde hasj hebben? Bedankt,

3
In java heb je Arrays.equals (byte [], byte []) voor het vergelijken van de bytearrowegelijkheid. Maar om dit programmatisch te doen, moet je de resultaten op de een of andere manier delen, zoals in een bestand schrijven en het later lezen. Als u alleen de gelijkheid per blik wilt controleren, drukt u de arrays per teken af.
toegevoegd de auteur zeller, de bron
Eigenlijk wil ik het niet als een stream verzenden. Ik wil graag de c ++ -waarde en System.out de java-waarde afdrukken en uitzoeken of ze dezelfde hash-waarde hebben. Bedankt.
toegevoegd de auteur Forum Member, de bron
Ik heb in dit forum gelezen dat ik de bytearray in Java kon afdrukken met System.out.printf ("0x% 02X", output [0]) ;. Kent u het equivalent voor de c ++. Bedankt
toegevoegd de auteur Forum Member, de bron

2 antwoord

U kunt op deze manier meerdere bytes in C/C ++ afdrukken:

int i;
for (i = 0; i < outlen; ++i)
    printf("%02x", outCode[outlen]);
0
toegevoegd

Het is moeilijk om te vertellen wat je aan het doen bent.
Je klinkt alsof je een array van binaire data in hexidecimal wilt weergeven?

C ++

for(int i=0; i<< std::hex << std::setw(2) << outcode[i];
std::cout << std::dec << std::endl;

Ik weet niet hoe ik de Java moet doen. http://www.exampledepot.com/egs/java.math/Bytes2Str.html lijkt nuttig.

0
toegevoegd
Dus je wilt de binaire inhoud in hex weergeven in C ++?
toegevoegd de auteur Mooing Duck, de bron
Eigenlijk heb ik hex-waarden opgeslagen in hen. De uitvoerwaarde c ++ wordt gedefinieerd als char outCode [outlen] en de java wordt opgeslagen in een bytearray als byte [] -uitvoer. Ik wil er zeker van zijn dat de hex-uitvoer hetzelfde is voor zowel Java als C ++. Als we de for-lus negeren, kan ik niet alleen printf uitvoeren ("out [0] =% c", outCode [0]); en vergelijk met System.out.println ("out [0] =" + output [0]) ;. Dus ik ben op zoek naar de eigenlijke printf en System.out-verklaring waarmee ik appels met appels kan vergelijken in plaats van sinaasappels. bedankt
toegevoegd de auteur Forum Member, de bron