Wie konvertiere ich ein Byte-Slice in ein Float64 in GoLang?

Barbara Streisand
Freigeben: 2024-11-10 15:19:02
Original
138 Leute haben es durchsucht

How to Convert a Byte Slice to a Float64 in GoLang?

Byte-Slice in Float64 in GoLang konvertieren

In GoLang kann es notwendig sein, ein Byte-Slice zu konvertieren, dargestellt als []uint8, in einen float64. Allerdings kann es eine Herausforderung sein, online eine unkomplizierte Lösung zu finden. Der Versuch, das Byte-Slice in eine Zeichenfolge und dann in einen Float64-Wert umzuwandeln, kann zu Datenverlust und falschen Werten führen.

Um dieses Problem zu beheben, bieten binäre Operationen und mathematische Funktionen eine effiziente Methode zum Konvertieren von Byte-Slices in Float64:

package main

import (
    "encoding/binary"
    "fmt"
    "math"
)

// Convert []uint8 to float64
func Float64frombytes(bytes []byte) float64 {
    bits := binary.LittleEndian.Uint64(bytes)
    float := math.Float64frombits(bits)
    return float
}

// Convert float64 to []uint8
func Float64bytes(float float64) []byte {
    bits := math.Float64bits(float)
    bytes := make([]byte, 8)
    binary.LittleEndian.PutUint64(bytes, bits)
    return bytes
}

func main() {
    // Example: Converting math.Pi to byte slice and back to float64
    bytes := Float64bytes(math.Pi)
    fmt.Println(bytes)
    float := Float64frombytes(bytes)
    fmt.Println(float)
}
Nach dem Login kopieren

Ausgabe:

[24 45 68 84 251 33 9 64]
3.141592653589793
Nach dem Login kopieren

Dieses Code-Snippet zeigt, wie ein Byte-Slice in konvertiert wird ein float64 mit dem Paket Binary.LittleEndian und der Funktion math.Float64frombits. Umgekehrt wird auch gezeigt, wie man mithilfe der Funktionen math.Float64bits und Binary.LittleEndian.PutUint64 einen Float64-Wert zurück in ein Byte-Slice umwandelt.

Das obige ist der detaillierte Inhalt vonWie konvertiere ich ein Byte-Slice in ein Float64 in GoLang?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage