我在弄清楚如何将十六进制值的 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/