質問

私は、メディアプレーヤーをファジングするプロジェクトに取り組んでいます。ファイルジェネレーターをJavaで記述し、Cで記述された元の圧縮コードからCRCジェネレーターを変換しました。DataOutputStreamを使用してデータを正常に書き込むことはできますが、データをJavaで符号なし文字配列として送信する方法がわかりません。 Cでは、これは非常に簡単なプロセスです。解決策をかなり徹底的に検索しましたが、見つけた最良の解決策は、データをCに送信し、CにCRCを返させることです。私はこのようなものになじみがないので、正しく検索していないかもしれません。助けてくれてありがとう。

役に立ちましたか?

解決

間違いなくbyte []が必要です。 「バイト」は、Cの符号付き文字と同等です。Javaの<!> quot; char <!> quot; 16ビットのUnicode値であり、実際にはまったく同じではありません。

ファジングの場合、使用しているCRC関数に特別なものがない限り、単純に使用できると思います:

import java.util.Random;
Random randgen = new Random();

byte[] fuzzbytes = new byte[numbytes];
randgen.nextBytes(fuzzbytes);
outstream.write(fuzzbytes, 0, numbytes);

他のヒント

私はあなたがキャラクターで何かをしたいとは思わない。あなたの説明には、テキストの操作を示唆するものは何もありません。

バイト配列を使用します。 Javaでバイトが署名されるのは少し苦痛ですが、バイト配列はあなたが持っているものです-実際の数字と考えるのではなく、ビットパターンを操作し、各操作を慎重に確認してください。

ほとんどのCRC演算子は、主にビット単位のシフトとXORを使用します。これらは、符号なし整数プリミティブをサポートしないJavaで正常に動作するはずです。適切に動作するために他の演算が必要な場合は、 short にキャストしてみてください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top