gpt4 book ai didi

c++ - 十六进制的 4 字节日期时间转换为可读

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:03:55 33 4
gpt4 key购买 nike

我收到来自服务器的响应,该响应被压缩并转换为 base64 字符串。我已经解码了这个响应,发现它看起来像肥皂文档。大多数值都是十六进制格式。所以我有一个存储值“\xf4\xdd|\xad\x08”的参数 datetime。我知道它表示 24.06.1982 日期。

如何将十六进制值转换为日期格式?首选c/c++语言。

最佳答案

要将编码后的数字转换为整数,您需要确定它是大端还是小端。

由于您拥有的数据不是字符串,即数字不是文本形式而是直接采用二进制形式,因此您不能正常使用 sscanf() 这是一个字符串解析函数。

相反,像这样:

const char *buffer = "\xf4\xdd|\xad\x08";
unsigned int stamp = (((unsigned char) buffer[0]) << 24) |
(((unsigned char) buffer[1]) << 16) |
(((unsigned char) buffer[3]) << 8) |
((unsigned char) buffer[4]);

如果是小端,则反转索引顺序(这样 buffer[0] 变成 buffer[4] 等等)。

关于c++ - 十六进制的 4 字节日期时间转换为可读,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12797707/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com