C ++およびJavaバイト配列

初心者の質問には申し訳ありません。私はC ++の経験がありません。私は入力を与えられたハッシュ値を生成するC ++のメソッドを持っています。出力は char outCode [outlen] として格納されます。私は、与えられたハッシュ値を生成し、出力は byte [] output として格納されるJavaメソッドを持っています。私はjavaにストリームとしてC ++値を送信しています。同じハッシュを持っているかどうかを比較するにはどうすればよいですか?ありがとう、

3
Javaでは、バイト配列の等価性を比較するためのArrays.equals(byte []、byte [])があります。しかし、プログラムでこれを行うには、ファイルに書き込んだり後で読み込んだりするなど、結果を何とか共有する必要があります。あなたは一見で平等をチェックしたい場合は、配列で文字を印刷してください。
追加された 著者 zeller,
実際に私はそれをストリームとして送信したくありません。私はprintfのC + +の値とSystem.outのJavaの値と彼らは同じハッシュ値を持っている把握したいと思います。ありがとう。
追加された 著者 Forum Member,
私はこのフォーラムでSystem.out.printf( "0x%02X"、output [0]);を使用してJavaでバイト配列を印刷できることを読んだ。あなたはC ++と同等のことを知っていますか?ありがとう
追加された 著者 Forum Member,

2 答え

この方法でC/C ++でいくつかのバイトを印刷することができます:

int i;
for (i = 0; i < outlen; ++i)
    printf("%02x", outCode[outlen]);
0
追加された

あなたがしていることを伝えるのは難しいです。
バイナリデータの配列を16進数で表示したいのですか?

C ++

for(int i=0; i

私はJavaのやり方を知らない。 http://www.exampledepot.com/egs/java.math/Bytes2Str.html が参考になります。

0
追加された
だから、バイナリの内容をC ++で16進数で表示したいのですか?
追加された 著者 Mooing Duck,
実際には、16進数の値が格納されています。 C ++出力値はchar outCode [outlen]として定義され、javaはバイト配列としてbyte []出力として格納されます。私は、16進数の出力がjavaとc ++の両方で同じであることを確認したい。 forループを無視すると、printf( "out [0] =%c"、outCode [0])だけではできません。 System.out.println( "out [0] =" + output [0]);と比較してください。だから私は実際のprintfとSystem.outステートメントを探しています。これは、リンゴとオレンジをリンゴと比較することができます。ありがとう
追加された 著者 Forum Member,