Как преобразовать шестнадцатеричное значение в число с плавающей запятой одинарной точности, а также в число с плавающей запятой двойной точности в соответствии с форматом IEEE-754 - PullRequest
0 голосов
/ 09 мая 2011

Может кто-нибудь сказать, как я могу преобразовать шестнадцатеричную строку в соответствующее ей число с одинарной или двойной точностью с плавающей запятой в соответствии с форматом IEEE-754 в java?

Например: "4682E989" и "A4703D4A0B0B7441 "

BR Suppi

1 Ответ

4 голосов
/ 09 мая 2011

См. Double.longbitsToDouble.

Возвращает двойное значение, соответствующее заданному битовому представлению.Аргумент считается представлением значения с плавающей запятой в соответствии с битовой компоновкой IEEE 754 «двойной формат».

Вы можете получить long из шестнадцатеричного представления с помощьюLong.parseLong new BigInteger(s, 16).longValue() (как указывает Питер Лоури).Long.parseLong не сработает, потому что произойдет сбой на числах больше 2 ^ 63-1.

...