任务是向网络发送小端字节,表示自UNIX时代以来使用32位系统的毫秒数。
编号1510747673476代表当前日期,2017年11月15日。在32位系统中,系统无法想到这个数字。从UNIX时代开始,它也没有毫秒来源。但它确实有秒数的来源。我们可以生成48位数字,其毫秒数始终为零。
假设y = 1510747673是自当前日期的UNIX纪元以来的秒数。有没有办法格式化1510747673 * 10 ^ 3?意思是我得到数字1510747673的字节,并以某种方式发现我需要组成1510747673 * 10 ^ 3的小端字节需要哪两个字节?这就是问题所在。
随意提出更好的问题。目标是以毫秒为单位提供当前日期的6个字节。接收端期望它以little-endian和48位大小。
答案 0 :(得分:0)
您有秒数y,它适合32位数据类型。你想用little-endian格式化y + 10 ^ 3。所以你需要两个代表10 ^ 3的小端字节。这些是0xe8和0x03。
因此,请使用格式化32位整数的库,并获取代表y的4个字节。这些将是48位整数的4个最重要的字节。称它们为b3,b4,b5,b6。期望的小端回答是0xe8,0x03,b3,b4,b5,b6。