INT64 tmp = 0;
//舉例:QString hexStr = "4646464646433244";
//第一步可以將16進制字符串分割得到下面的數組, 可以用str.toInt(NULL, 16)
//高字節在前,低字節在後
int array[8] = {0x46, 0x46, 0x46, 0x46, 0x46, 0x43, 0x32, 0x44};
for(int i=0; i<8; i++)
{
if(i == 0)
{
//Check if it is negative value
if((array[0] & 0x80) == 0x80)
tmp += ((INT64)((array[0] & 0xFF) | 0xFFFFFFFFFFFFFF00) << 7*8);
else
tmp += ((INT64)(array[0] & 0xFF) << (7*8));
}
else
{
tmp += ((INT64)(array[i] & 0xFF) << (7-i)*8);
}
}
qDebug() << tmp;
for(int i=0; i<8; i++)
{
qDebug() << QString::number(tmp>>((7-i)*8) & 0xFF, 16);
}
進一步,可以將代碼封裝爲函數去調用