3

単精度浮動小数点数を、それを構成する 4 バイト (符号/指数/仮数) の ASCII 表現に変換しようとしています。私の現在のコードは次のとおりです。

Integer.toString(Float.floatToRawIntBits(f),16);

Float.floatToRawIntBits同じバイトを使用して整数をInteger.toString作成し、ASCII 数字を 16 進数形式で作成します (したがって、基数 = 16 が指定されます)。私の問題は、常に 8 つの ASCII 文字とオプションの「-」記号が必要でありInteger.toString、左側にゼロを埋め込んでいないことです。

誰でもエレガントなソリューションを思い付くことができますか?

ありがとう。

4

1 に答える 1

8

String.format()を使用できます:

String.format("%08x", Float.floatToRawIntBits(f))

これにより、結果がゼロで埋められ、16進数としてフォーマットされます。フォーマット文字列の詳細については、こちらをご覧ください

于 2009-06-23T20:01:47.267 に答える