【发布时间】:2014-09-17 18:19:58
【问题描述】:
我有一个包含 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 位。
文件是小尾数。
【问题讨论】:
-
不!位,而不是字节或类似的东西:) 我的“格式”中的“x”代表位,0/1
-
好的,我撤回了接近投票,但您可能想编辑您的问题,因为它读起来好像您的意思是
x.xxxxxxxxx作为 ASCII 表示。例如,您可以以十六进制转储的形式发布一个示例,以及您希望它解码为什么值。 -
你应该给我们更多的上下文,尤其是这是什么文件。
-
如果你有10位,并且“二进制点在第一位和第二位之间,这只是意味着该数字除以2到第9位,即512。所以把值放在低位int 的结尾,转换为浮点数,除以 512,得到你的数字。
标签: java parsing bit-manipulation bit fixed-point