Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Menukar Slice Byte kepada Float64 dalam GoLang?

Bagaimana untuk Menukar Slice Byte kepada Float64 dalam GoLang?

Barbara Streisand
Lepaskan: 2024-11-10 15:19:02
asal
195 orang telah melayarinya

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

Menukar Slice Byte kepada Float64 dalam GoLang

Dalam GoLang, mungkin perlu menukar kepingan bait, yang diwakili sebagai []uint8, ke dalam apungan64. Walau bagaimanapun, mencari penyelesaian yang mudah dalam talian boleh menjadi mencabar. Percubaan untuk menukar kepingan bait kepada rentetan dan kemudian kepada float64 boleh mengakibatkan kehilangan data dan nilai yang salah.

Untuk menangani isu ini, operasi binari dan fungsi matematik menyediakan kaedah yang cekap untuk menukar kepingan bait kepada 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)
}
Salin selepas log masuk

Output:

[24 45 68 84 251 33 9 64]
3.141592653589793
Salin selepas log masuk

Kod ini coretan menunjukkan cara menukar kepingan bait kepada float64 menggunakan pakej binari.LittleEndian dan fungsi matematik.Float64frombits. Sebaliknya, ia juga menunjukkan cara untuk menukar float64 kembali kepada kepingan bait menggunakan fungsi matematik.Float64bits dan binari.LittleEndian.PutUint64.

Atas ialah kandungan terperinci Bagaimana untuk Menukar Slice Byte kepada Float64 dalam GoLang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan