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

在python中将定点转换为浮点时出现问题,python,numpy,hex,fixed-point,Python,Numpy,Hex,Fixed Point,我正在使用python numpy阅读minew灯塔,现在我在将固定点转换为浮点时遇到了问题 在Minew E7数据表上,我有以下信息: 我必须将固定点8.8转换为浮点 我正在使用以下代码进行转换: 从rig.type\u将导入fp\u转换为\u float def ConvertedFixedPtoFloat(十六进制字符串): hexaInt16=int(hexaString,16) f4=浮点数到浮点数(n分数=8) 返回(f4(十六进制)) 如果查看数据表,十六进制数0xFFFE必须

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

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

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

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

从rig.type\u将导入fp\u转换为\u float
def ConvertedFixedPtoFloat(十六进制字符串):
hexaInt16=int(hexaString,16)
f4=浮点数到浮点数(n分数=8)
返回(f4(十六进制))
如果查看数据表,十六进制数0xFFFE必须是-0.01,但我的函数返回的是:255.9921875

我的phython版本是Python 3.7.3


我怎样才能在右边转换它

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

if hexaInt16 >= 0x8000:
    hexaInt16 -= 0x10000
以上是你问题中的具体数字。对于更通用的无符号到有符号转换,可以使用此函数

def signed(n, bits=16):
    n &= (1 << bits) - 1
    if n >> (bits - 1):
        n -= 1 << bits
    return n
def签名(n,位=16):
n&=(1>(位-1):
n-=1参见。