我有一个包含 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/