[英]Reading Binary Data in () 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
这样的固定切片转换为我可以实际使用的 integer。 有什么建议么?
声明具有固定大小数字类型的字段:
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
}
我在这里使用了无符号整数,但也可以使用有符号整数。 使用与数据匹配的类型。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.