Heim >Backend-Entwicklung >Golang >Wie konvertiert man in Go hexadezimale Zeichenfolgen in IEEE-754-Floats?
Hexadezimal in IEEE-754-Float umwandeln
Um hexadezimale Zeichenfolgen wie „0xC40C5253“ in IEEE-754-Float-Werte zu konvertieren, ist der Standard strconv. Die ParseFloat-Funktion ist nicht ausreichend. In diesem Artikel werden alternative Methoden zum Erreichen dieser Konvertierung untersucht.
Bestimmen Sie zunächst die Bitlänge der Eingabe. In diesem Fall handelt es sich bei 8 Hexadezimalstellen wahrscheinlich um einen 32-Bit-Float (obwohl eine Bestätigung durch den Benutzer empfohlen wird).
Verwendung von strconv.ParseUint und unsicherer Konvertierung:
Code:
s := "C40C5253" n, err := strconv.ParseUint(s, 16, 32) if err != nil { panic(err) } n2 := uint32(n) f := *(*float32)(unsafe.Pointer(&n2))
Alternative zur Verwendung von math.Float32frombits:
Das Mathematikpaket bietet eine integrierte Funktion Float32frombits(), die einen uint32 direkt in einen konvertiert float32.
Code:
f := math.Float32frombits(n2)
Verwendung:
Mit beiden Methoden können Sie jetzt auf den Float-Wert zugreifen gespeichert in f. Zum Beispiel:
fmt.Println(f) // Output: -561.2863
Das obige ist der detaillierte Inhalt vonWie konvertiert man in Go hexadezimale Zeichenfolgen in IEEE-754-Floats?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!