Получение значения с плавающей точкой в ​​байтах в Java - PullRequest
0 голосов
/ 09 апреля 2020

Я получаю значение с плавающей запятой через USB, в байтах. Как я могу ввести это значение в виде числа с плавающей запятой. Имейте в виду, что на самом деле это число с плавающей точкой, я просто получаю его как байт по USB. MSB сначала.

    USB_ByteArray[3] = 42
    USB_ByteArray[2] = 99
    USB_ByteArray[1] = 99
    USB_ByteArray[0] = 9A

Как мне представить вышеуказанное значение байта в качестве числа с плавающей запятой, которое они представляют?

76.8 = 0x4299999a (IEEE с плавающей запятой)

1 Ответ

4 голосов
/ 09 апреля 2020

Посмотрите на Float.intBitsToFloat(). Предполагая, что используется кодировка IEEE 754, вы создаете int из байтовых значений и можете использовать этот метод для преобразования его в число с плавающей точкой.

Пример с использованием jshell:

axel@xiaolong ~ % jshell
|  Welcome to JShell -- Version 14
|  For an introduction type: /help intro

jshell> Float.intBitsToFloat(0x4299999a)
$1 ==> 76.8
...