C++ 从 32 位整数获取 GPS 时间

C++ Get GPS Time from 32-bit Integer

抱歉,如果这听起来令人困惑,但我正在编写一个程序,需要从导航装置以分钟为单位检索 GPS 时间(纪元时间)。导航单元发出一个 72 字节的 UDP 数据包。根据 Nav 手册,字节 63、64、65 和 66 包含 32 位 GPS 时间。我试图正确检索时间,但时间似乎已经用完了。我得到的值大约是 18754849,根据 this,我很确定当前的 GPS 时间应该在 24020957 左右。

我用来检索时间的代码如下。这是来自一个以前从事该程序的人,我的数学不是很好,所以我不确定它是否正确。任何人都可以在这里看到任何明显的错误吗?这也是 buf 值的来源。

iResult = recvfrom(sock, buf, sizeof (buf), 0, 0, 0);

谢谢

minutes = (unsigned char)buf[66]*0x1000000 + (unsigned char)buf[65]*0x10000 + (unsigned char)buf[64]*0x100 + (unsigned char)buf[63];

解决了我自己的问题。原来GPS时间是1980年1月6日,而EPOCH时间是1970年1月1日。我以为他们是同一回事,我现在觉得很愚蠢。还是谢谢