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

我需要阅读特定的二进制数据格式(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转换为我实际可以使用的整数。有什么建议么?


慕运维8079593
浏览 83回答 1
1回答

波斯汪

声明具有固定大小数字类型的字段: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
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go