我想知道如何将64 bit long
数据类型转换为任何16 bit
数据类型.以太网应用程序中需要此功能才能包含时间戳.只有2个字节(16位)可用于包含时间戳.但我们得到的64 bit long
是时间戳值Win API
.因此,从64位数据类型到16位数据类型的转换是必不可少的.
好吧,你不能将64位信息放入16位存储而不会丢失一些信息.
因此,您可以自行决定如何量化或截断时间戳.例如,假设您获得的时间戳精确到纳秒级,但您只需要以秒精度存储它.在这种情况下,您将64位数除以1000000000,并留下秒.然后它可能适合16位或不适合16位(16位只能存储65535秒).
如果它不适合,那么你将定期包围时间戳.在您的情况下,这可能是一个问题,也可能不是问题.
在任何情况下,如果您需要连接需要时间戳的现有库 - 在该时间戳中找出它需要什么(时钟滴答?秒?年?).然后找出你正在使用的Windows时间函数返回的内容.然后将Windows时间单位转换为您使用的库时间单位.