美文网首页
[Golang] Bytes大小端int32转float32

[Golang] Bytes大小端int32转float32

作者: 星际大镖客 | 来源:发表于2019-10-04 22:24 被阅读0次

    由于下位机字节序和网络字节序大小端问题,涉及到经纬度数据需要转化一下,特意写个笔记。
    唯一遗憾是精度缺失,后续有待更新。

    package main
    
    import (
        "bytes"
        "encoding/binary"
        "fmt"
    )
    /*
    //0x04883246  小端模式
    //0x46328804  大端模式
    想要的有符号浮点型数据:11426.004;
    */
    func main() {
        // 大端Bytes转 int32
        var bint = []byte{0x46,0x32,0x88,0x04}
        my_buf := bytes.NewBuffer(bint)
        var lz int32
        binary.Read(my_buf, binary.BigEndian, &lz)
        fmt.Println(lz)
    
    
        // 大端Bytes转 float32
        var bfloat = []byte{0x46,0x32,0x88,0x04}
        bft_buf := bytes.NewBuffer(bfloat)
        var bft float32
        binary.Read(bft_buf, binary.BigEndian, &bft)
        fmt.Println(bft)
    
    
        // 小端Bytes转 float32
        var f_byte = []byte{0x04,0x88,0x32,0x46}
        f_buf := bytes.NewBuffer(f_byte)
        fmt.Printf("%x \n",f_buf)
        var bz float32
        binary.Read(f_buf, binary.LittleEndian , &bz)
        fmt.Println(bz)
        
        
    }
    
    

    运行结果

    
    [Running] go run "d:\code\goCode\GoLearn\2\index.go"
    1177716740
    11426.004
    04883246 
    11426.004
    

    相关文章

      网友评论

          本文标题:[Golang] Bytes大小端int32转float32

          本文链接:https://www.haomeiwen.com/subject/izntuctx.html