在python中将定点转换为浮点时出现问题

2024-10-01 00:27:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用python numpy阅读minew灯塔,现在我在将固定点转换为浮点时遇到了问题

在Minew E7数据表上,我有以下信息: Datasheet infos

我必须将固定点8.8转换为浮点

我正在使用以下代码进行转换:

from rig.type_casts import fp_to_float

def convertFixedPToFloat(hexaString):
   hexaInt16 = int(hexaString,16)
   f4 = fp_to_float(n_frac=8)
   return (f4(hexaInt16))

如果查看数据表,十六进制数0xFFFE必须是-0.01,但我的函数返回的是:255.9921875

我的phython版本是Python 3.7.3

我怎样才能在右边转换它


Tags: tonumpy信息float数据表浮点fp灯塔
1条回答
网友
1楼 · 发布于 2024-10-01 00:27:57

您需要将无符号整数转换为有符号整数

if hexaInt16 >= 0x8000:
    hexaInt16 -= 0x10000

以上是你问题中的具体数字。对于更通用的无符号到有符号转换,可以使用此函数

def signed(n, bits=16):
    n &= (1 << bits) - 1
    if n >> (bits - 1):
        n -= 1 << bits
    return n

相关问题 更多 >