Ich bekomme tatsächlich einen Wert (b'\xc8\x00'
) von einem Temperatursensor. Ich möchte es in einen Gleitkommawert konvertieren. Ist es richtig, dass ich es entschlüsseln muss?Wie konvertiert man b ' xc8 x00' in float?
Hier ist meine Funktion:
def ToFloat(data):
s = data.decode('utf-8')
print(s)
return s
Aber wenn ich versuche, es zu kompilieren, erhalte ich die Fehlermeldung:
'utf-8' codec can't decode byte 0xc8 in position 0: invalid continuation byte
Bei welcher Temperatur erwarten Sie ungefähr, dass der Wert am Ende ist? Es gibt eine Million Möglichkeiten, zwei Zeichen in eine Zahl umzuwandeln, und es würde helfen, es einzugrenzen, wenn wir wüssten, ob sich Ihr Thermometer in einem Ofen oder in Ihrem Wohnzimmer oder in der Antarktis befindet. – Kevin
Kompilieren? In Python? Was denkst du, was str.decode machen soll? Was ist die Zeichenfolge, die Sie scheinbar in einen Float zu konvertieren versuchen? –
Welchen Float-Wert repräsentiert 'b '\ xc8 \ x00''? Was für eine Gleitkommadarstellung ist das? Es ist kein gewöhnliches IEEE-Format, das mindestens 4 Bytes an Daten benötigt, also sind nur zwei Bytes nicht genug. Wenn Sie die Repräsentation kennen, dann scheint das 'struct'-Modul das zu verwenden. – martineau