【发布时间】:2011-05-30 12:39:31
【问题描述】:
我正在编写一个应该解析和回复网络数据包的程序,但我有点恼火,因为我不能用字节数组做简单的 C 风格 return (int)buffer[at];。有没有比以下更好的方法从 byte[] 检索 4 个字节作为 int32?
func (packet *Packet) GetInt32(at int) int32 {
return int32(packet.buffer[at]) << 24 +
int32(packet.buffer[at+1]) << 16 +
int32(packet.buffer[at+2]) << 8 +
int32(packet.buffer[at+3])
}
它工作正常,但我在想是否有更好的方法来做到这一点。
【问题讨论】:
-
你不需要为每个连续的字节增加
at吗? -
哦,是的,你是对的,我的错误。我目前无法访问源代码,所以我只是快速编写了该函数。
标签: go