为了账号安全,请及时绑定邮箱和手机立即绑定

在 () golang 中读取二进制数据

在 () golang 中读取二进制数据

Go
慕运维8079593 2022-06-01 18:00:01
我需要阅读特定的二进制数据格式(https://www.usna.edu/Users/oceano/pguth/md_help/html/BT_file_format.htm)。Go 似乎能够很好地做到这一点:// ...    f, _ := os.Open(filename)    var data struct {        Indicator         [10]byte        Columns           [4]byte        Rows              [4]byte        DataSize          [4]byte        UTMFlag           [2]byte        UTMZone           [2]byte        LeftExtend        [4]byte        RightExtend       [4]byte        BottomExtend      [4]byte        TopExtend         [4]byte        FloatingPointFlag [2]byte    }    _ = binary.Read(f, binary.LittleEndian, &data)// ...这似乎有效,因为spew.dump(data.Indicator)例如返回正确的数据。我不明白的是如何将固定切片[2]byte转换为我实际可以使用的整数。有什么建议么?
查看完整描述

1 回答

?
波斯汪

TA贡献1811条经验 获得超4个赞

声明具有固定大小数字类型的字段:


var data struct {

    Indicator         [10]byte

    Columns           uint32

    Rows              uint32

    DataSize          uint32

    UTMFlag           uint16

    UTMZone           uint16

    LeftExtend        uint32

    RightExtend       uint32

    BottomExtend      uint32

    TopExtend         uint32

    FloatingPointFlag uint16

}

我在这里使用了无符号整数,但也可以使用有符号整数。使用与数据匹配的类型。


https://play.golang.org/p/95yqMAYsWVR


查看完整回答
反对 回复 2022-06-01
  • 1 回答
  • 0 关注
  • 82 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信