Heim >Backend-Entwicklung >Golang >Wie konvertiere ich ein Byte-Slice in ein Float64 in GoLang?

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

Barbara Streisand
Barbara StreisandOriginal
2024-11-10 15:19:02215Durchsuche

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)
}

Ausgabe:

[24 45 68 84 251 33 9 64]
3.141592653589793

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!

Stellungnahme:
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