1. ホーム
  2. java

[解決済み] C言語の%04Xの意味とjavaでの書き方

2022-02-09 07:07:08

質問事項

私が取り組んでいるJavaプロジェクトでは、プロジェクトの一部が他の人によってCで以前に書かれ、今私は同じものをJavaで書く必要があります。

C言語のコードに、ファイルに印刷するための文があります。

fprintf(ff, "%04X ", image[y*width+x]);

まず、"S "の意味がよくわかりません。 %04X . という意味だと思います。 image[i] が5文字以上ある場合は、左から4文字だけを表示します。Javaで同じことをするには、次のように値をマスクすることを考えました。 and 操作

 image[i] & 0xFFFF

の正しい意味をどなたか教えてください。 %04X と、Javaで同じことをするにはどうしたらいいのでしょうか?ありがとうございます。

どのように解決するのですか?

値は、4桁と先頭のゼロからなる16進数の整数としてフォーマットされます。Javaでも同じフォーマット文字列の構文が使われています。この構文は のjavaDocです。 Formatter .

抜粋

'x', 'X'     integral    The result is formatted as a hexadecimal integer

関連する機能として

// create a String with the formatted value.
String formatted = String.format("%04X ", image[y*width+x]);

// write a formatted value to the console (*)
System.out.printf("%04X ", image[y*width+x]);

<サブ (*) - に書き込む。 PrintStream System.out である 通常 コンソールですが、ファイルや他のものにリダイレクトすることができます。