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

读取()golang中的二进制数据,go,Go,我需要读取特定的二进制数据格式()。Go似乎能够很好地做到这一点: /。。。 f、 _u:=os.Open(文件名) 变量数据结构{ 指示符[10]字节 列[4]字节 行[4]字节 数据大小[4]字节 UTMFlag[2]字节 UTMZone[2]字节 LeftExtend[4]字节 RightExtend[4]字节 底部扩展[4]字节 TopExtend[4]字节 FloatingPointFlag[2]字节 } _=binary.Read(f、binary.LittleEndian和data

我需要读取特定的二进制数据格式()。Go似乎能够很好地做到这一点:

/。。。
f、 _u:=os.Open(文件名)
变量数据结构{
指示符[10]字节
列[4]字节
行[4]字节
数据大小[4]字节
UTMFlag[2]字节
UTMZone[2]字节
LeftExtend[4]字节
RightExtend[4]字节
底部扩展[4]字节
TopExtend[4]字节
FloatingPointFlag[2]字节
}
_=binary.Read(f、binary.LittleEndian和data)
// ...

这似乎是可行的,因为
spew.dump(data.Indicator)
例如返回正确的数据。我不明白的是如何将像
[2]byte
这样的固定片转换成一个我实际上可以处理的整数。有什么建议吗?

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

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
}
我在这里使用了无符号整数,但也可以使用有符号整数。使用与数据匹配的类型


将该字段声明为
int16
uint16
。请查阅。@CeriseLimón I显然对此处的位和字节感到困惑。由你来写。介意写一个“答案”让我接受吗?另外,我使用的数据的格式规范不正确,这导致了更多的混乱: