gpt4 book ai didi

java - 将 N 字节转换为由 Q 数定义的浮点型

转载 作者:行者123 更新时间:2023-12-02 04:05:19 24 4
gpt4 key购买 nike

有没有一种简单的方法可以将 N 个字节的字节数组转换为由 Q-Number 定义的 float 。

在2的恭维中(之前忘了提及这一点)

示例:0xFFF0 -> 使用 s3.12 Q 编号的浮点

https://en.wikipedia.org/wiki/Q_(number_format)

最佳答案

Peter Lawrey 提出以下建议:

private static void test(short x) {
float y = (float)(x & 0x7FFF) / (1 << 12);
if ((x & 0x8000) != 0)
y = -y;
System.out.printf("%04x: %g%n", x, y);
}

测试

test((short)0xFFF0);
test((short)0xFFFF);
test((short)0x0000);
test((short)0x0001);
test((short)0x1000);
test((short)0x9000);
test((short)0x7FFF);

输出

fff0: -7.99609
ffff: -7.99976
0000: 0.00000
0001: 0.000244141
1000: 1.00000
9000: -1.00000
7fff: 7.99976

关于java - 将 N 字节转换为由 Q 数定义的浮点型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34345986/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com