gpt4 book ai didi

c++ - 如何从数组中向后读取十六进制字符并转换为 int

转载 作者:行者123 更新时间:2023-11-28 06:15:56 26 4
gpt4 key购买 nike

假设我有一个数组,例如:

无符号字符数据[2] = { 0x00, 0x20 };

我想得到所有十六进制值的整数值,向后读取,所以 0200 将是十六进制值,十进制为 512。您将如何在 C++ 中执行此操作?我阅读了有关使用 sstream 的其他帖子,但我不确定如何让流向后读取值。

最佳答案

首先 - 这些不是十六进制或十进制值。当您打印它们时,它们就会变成那样。它们是二进制的。 sstream 处理字符串流。这里没有任何内容是指文本字符串。

第二件事 - 你不应该做的事。不要使用 unsigned short []reinterpret_cast 创建 union ,然后进行位移。它是不干净的,依赖于字节序,如果您有大量数据并且对性能至关重要,则有更好的方法。如果不是:

    i = 0;
while(i + 1 < length)
{
uint16_t value;
value = (uint16_t)data[i++];
value |= (uint16_t)data[i++] << 8;
...
}

关于c++ - 如何从数组中向后读取十六进制字符并转换为 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30316154/

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