java - 读取 10 位定点 float

标签 java parsing bit-manipulation bit fixed-point

我有一个包含 10 位定点值的二进制文件,我需要将其转换为 Java float。我几乎可以肯定“格式”是x.xxxxxxxxx,其中x是位。而且我确实认为我了解做 this 的基础知识手工制作。

我必须对位进行处理:x + 0.5*x + 0,25*x... 等等。例如

1010110010 = 1×1 + 0×½ + 1×¼ + 0×⅛ + 1×¹⁄₁₆ + 1×¹⁄₃₂...

但我不知道如何在 Java 中执行此操作。我一次只能读取一个 BYTE 文件,一个值将读取 2 个字节 = 16 位。

文件是小尾数。

最佳答案

如果你有 10 位,并且“二进制小数点”在第一位和第二位之间,这就意味着该数字被 2 除以第 9 位,即 512。所以将值放在 int 的低端,转换为 float ,除以 512,得到你的数字。

float finalAnswer = bitsInLowOrderEndOfInt / 512.0;

关于java - 读取 10 位定点 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25897666/

相关文章:

java - 将星号作为命令行参数传递给 Eclipse 中的 main

Dart 中的 XML 绑定(bind)

c - 整数到字节数组 Little Endian,反之亦然

c# - 合并2个字节

python - 在 Python 中 128 位输入的 32 位之后拆分每个

java - Azure VM 中的 WASB 是否支持 Kerberos 身份验证?

java - Spark 操作中用户 lib jar 优先于 oozie 共享 lib

java - 同时多次调用方法的问题

android - 想要在来自 http 请求的 android 应用程序中显示泰卢固语内容

python - 如何使用 pyparsing 解析带有撇号的语言?