我在弄清楚如何将十六进制值的 vector 转换为十进制long int时遇到麻烦。

    vector<uint8_t>v;

    v.push_back(0x02);
    v.push_back(0x08);
    v.push_back(0x00);
    v.push_back(0x04);
    v.push_back(0x60);
    v.push_back(0x50);
    v.push_back(0x58);
    v.push_back(0x4E);
    v.push_back(0x01);
    v.push_back(0x80);

//How would I achieve this:
    long time =  0x00046050584E0180; //1,231,798,102,000,000

我如何将 vector v的元素2-9转换成一个长整数,如上面用长“时间”表示的那样。

谢谢!

最佳答案

这里的基本原理是:

int x = 0;
for(uint8_t i : v)
{
   x <<= 8;
   x |= i;
}

关于c++ - 将vector <uint8_t>的子集转换为int,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17813350/

10-11 22:41
查看更多