3

我正在尝试将单精度浮点数转换为构成它的四个字节的 ascii 表示(符号/指数/尾数)。我目前的代码是:

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

Float.floatToRawIntBits使用相同的字节生成一个整数,然后Integer.toString以十六进制形式创建 ascii 数字(因此指定了 radix = 16)。我的问题是我总是需要 8 个 ascii 字符加上可选的“-”符号,并且Integer.toString没有用左侧零填充。

有人能想出一个优雅的解决方案吗?

谢谢。

4

1 回答 1

8

您可以使用String.format()

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

这将对结果进行零填充并将其格式化为十六进制数。可以在此处找到有关格式字符串的详细信息。

于 2009-06-23T20:01:47.267 回答