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